Gait pattern generating device for legged mobile robot

ABSTRACT

A gait generation system of a legged mobile robot, in particular a biped robot that has the dynamic model expressing the relationship between the motion of the body and leg and the floor reaction force, and provisionally determines the current time gait parameters including at least parameters that determine leg trajectory and the like in response to a demand, supposes the parameters of a periodic gait, corrects the current time gait parameters such that the body trajectory determined from the dynamic model and the parameters of the current time gait, etc., converges to a body trajectory determined from the parameters of the periodic gait, and determines instantaneous values of the current time gait based on the corrected current time gait parameter. With this, the system can generates a gait of any stride, turning angle and walking period, including the floor reaction force acting on the legged mobile robot, that satisfies the dynamic equilibrium condition. Further, the system can generates a gait in such a manner that the displacement and velocity of each robot part are continues at the boundary of the generated gait and that succeeding thereto, can generate a gait that is high in the margin of stability, can predict future behavior of the robot and generate a gait such that no disadvantages such as posture divergence occurs.

TECHNICAL FIELD TO WHICH THE INVENTION RELATES TO

The present invention relates to a gait generation system of a leggedmobile robot, and more particularly to a system for generating ordetermining a gait freely on a real-time basis.

BACKGROUND ART OF THE INVENTION

The applicant proposes, in Japanese Laid-Open Patent Application No. Hei10 (1998)-86081, conducting gait generation freely by converting a setof standard gaits, designed with the use of an off-line computer, into aset of time-series data including parameters and a body trajectory to bestored in a memory of a microcomputer mounted on a robot, and bycalculating a weighted average of instantaneous values of individualgaits whose parameter relating to time such as a walking period are thesame.

However, if a weighted average is calculated between individual gaitsthat are different in the time parameter such as the walking period, thegenerated gait does not satisfy the dynamic equilibrium condition evenin an approximated manner. Thus, the proposed technique failed togenerate a gait that is different from the standard gait in the walkingperiod.

It should be noted here that the “dynamic equilibrium condition”indicates a situation where a ZMP determined from the gravity andinertial force of a desired gait is equal to a desired ZMP, to be morespecifically, a situation where moment of the resultant force of theinertial force and gravity of the robot about the desired ZMP is zero.Here, the ZMP (Zero Moment Point) indicates a floor point at which theresultant force of the inertial force induced by motion and the gravityintersect the floor. More precisely, it indicates a point of action onthe floor at which the moment of the resultant force of the inertialforce induced by motion and gravity is zero except for its verticalcomponent.

Further, in the proposed technique, since it is sometimes necessary toturn a desired ZMP away large from its expected trajectory so as tobring both the body position and velocity continuous at boundary of agait of a walking step and that succeeding thereto, the margin ofstability may occasionally lower.

Further, in order to realize various kinds of walking, the proposedtechnique requires a large number of standard gait time-series data tobe stored and hence, needing an increased capacity of memory.Furthermore, a set of standard gaits must be prepared on an off-linecomputer by trial and error. In addition, when it is attempted togenerate a gait that is quite different from the standard gait, theapproximation is disadvantageously degraded markedly.

Aside from the above, since gait generation can not act against physicallaws, gait parameters such as the ZMP should be determined within apermissible range of the physical laws. Moreover, assuming the dynamicsystem of a biped robot as a system that inputs the ZMP and outputs thebody position, it is a divergence system. It therefore becomes necessaryto prevent a behavior of robot from diverging by generated gaitparameters. Here, “divergence” indicates, as shown in FIG. 8 referred tolater, a body position of the biped robot deviates far away from itsfeet positions.

From this point of views, when generating gait on a real-time basis, itis preferable to predict future behavior that would occur in the robotby the generated gait, and to avoid divergence if the possibility ofdivergence is predicted.

However, as shown in FIG. 23, when a robot (biped robot) is modeled tohave multiple material points, since the volume of calculation and thenon-linearity of system increase, it is difficult for an on-boardcomputer (mounted on the robot of ordinary performance) to determinegait terminal state on a real-time basis.

As regards the future behavior prediction and divergence preventiontechnique based thereon might be realized to a certain level, by, forexample, storing various kinds of knowledge and by selecting a desiredgait at every gait switching in response to the state and objective atthat time from the stored knowledge. In practice, however, a trial tocope with all possible condition would cause an explosion ofcombination, and this method would actually be impossible.

Therefore, it is desired in the field of legged mobile robot technologyto simplify a dynamic model that describes the robot dynamics in such away that robot's future behavior can analytically be predicated incalculation on a real-time basis.

As typical robot dynamic models, following two models are known.

1) a model assigned with a single material point.

2) a model assigned with multiple material points (but, material pointswith less influence are neglected).

The single-material-point model of 1) is proposed in Japanese PatentPublication Hei 4 (1992)-15068. In the proposed technique, the robot ismodel as a single-material-point model in which the material point isonly set at its body to ensure linearity such that it is controlled thebody height to be constant. This model makes it easy to determine robotbehavior analytically.

Since the biped robot in the proposed technique is quite small inweight, the leg reaction force can be neglected without leavingsignificant influence to exist. However, in case of a biped robot ofhumanoid type, since the mass of its leg is so large that it can not beneglected, if the proposed technique is adopted to the humanoid typerobot, the accuracy of approximation will accordingly be degraded andthe robot may, at worse, turn over if controlled to walk at a highspeed.

As an example of the model of 2), it can be cited a model described in apaper “Biped Walking Control Method Adapting to an Unknown UnevenSurface” (Journal of the Robotics Society of Japan; Vol. 13 No. 7;October, 1995).

In the proposed technique, the material points are set on knees andankles of each leg and on the body. More specifically, the individualmaterial points are set on fixed points (coordinate) in coordinatesystems set locally on its links and joints. When comparing this modelwith that shown in FIG. 23 (in which the material points and inertia areset at every link), the model of 2) can decrease the volume ofcalculation to {fraction (1/10)} or thereabout. In addition, theaccuracy of approximation of the model of 2) will be improved than themodel of 1) and even a robot having a large-mass leg can walk inaccordance with gaits generated by the technique mentioned in the paper.

However, since the non-linearity in the model of 2) is still excessive,like the model shown in FIG. 23, it is not possible to use the model of2) for predicting future behavior analytically so as to avoiddivergence.

DISCLOSURE OF THE INVENTION

A first object of the present invention is to eliminate the drawbacks ofthe technique proposed in Japanese Laid-Open Patent Application No. Hei10(1998)-86081 proposed by the applicant and the prior art modelsimplification techniques mentioned above, and to provide a gaitgeneration system of legged mobile robot which can generate a gait(including floor reaction force that satisfies dynamic equilibriumcondition) of the legged mobile robot freely and on a real-time basis insuch a way that a robot walking at any stride, turning angle and walkingperiod, etc., are realized.

A second object of the present invention is to eliminate the drawbacksof the technique proposed earlier and the prior art model simplificationtechniques mentioned above, and to provide a gait generation system oflegged mobile robot which can generate a gait of the legged mobile robotfreely and on a real-time basis in such a way that position and velocityof every robot part is continuous at boundary between the generatedgaits with high margin of stability.

A third object of the present invention is to provide a gait generationsystem of legged mobile robot which can predict future behavior of thelegged mobile robot and prevent disadvantages such as divergence fromoccurring.

A fourth object of the present invention is to provide a gait generationsystem of legged mobile robot which can ensure real-time gait generationwith high speed calculation.

In order to achieve the objects, the present invention provides, asdefined in claim 1, a system for generating a gait of a legged mobilerobot having at least a body and a plurality of legs each connected tothe body, comprising: a dynamic model that expresses relationshipbetween motion of the leg and the body, and a floor reaction force;current time gait parameter provisionally-determining means forprovisionally determining parameters of a current time gait including atleast parameters determining a trajectory of the leg and a trajectory ofthe floor reaction force, in response to at least a demand; periodicgait parameter supposing means for supposing the parameters of aperiodic gait succeeding to the current time gait in response to atleast the demand; current time gait parameter correcting means forcorrecting at least the provisionally determined parameters of thecurrent time gait such that the trajectory of the body determined basedon the dynamic model and the parameters of the current time gait and theperiodic gait succeeding thereto substantially converges or becomesequal to a trajectory of the body of the periodic gait determined fromthe parameters of the periodic gait; and current time gait instantaneousvalue determining means for determining instantaneous values of thecurrent time gait based on at least the corrected parameters of thecurrent time gait.

Since it is configured to have a dynamic model that expressesrelationship between motion of the leg and the body and a floor reactionforce, provisionally determines parameters of a current time gaitincluding at least parameters determining a trajectory of the leg and atrajectory of the floor reaction force, in response to at least ademand, supposes the parameters of a periodic gait succeeding to thecurrent time gait, corrects at least the provisionally determinedparameters of the current time gait such that the trajectory of the bodydetermined based on the dynamic model and the parameters of the currenttime gait and the periodic gait succeeding thereto substantiallyconverges or becomes equal to a trajectory of the body of the periodicgait determined from the parameters of the periodic gait, and determinesinstantaneous values of the current time gait based on at least thecorrected parameters of the current time gait, the system can generate,freely and on a real-time basis, a gait of any stride, turning angle andwalking period, including the floor reaction force acting on the leggedmobile robot, that satisfy the dynamic equilibrium condition.

Further, the system can generates a gait in such a manner that thedisplacement and velocity of each robot part are continues at theboundary of the generated gait and that succeeding thereto, can generatea gait that is high in the margin of stability, can predict futurebehavior of the robot to generate a gait such that no disadvantages suchas posture divergence occurs. Furthermore, the system can ensurereal-time gait generation with high speed calculation. The dynamic modelmay be a single-material-point model such as that disclosed in JapanesePatent Publication No. Her 4 (1992)-15068.

As defined claim 2, there is provided a system for generating a gait ofa legged mobile robot having at least a body and a plurality of legseach connected to the body, comprising: a dynamic model that expressesrelationship between motion of the leg and the body, and a floorreaction force; current time gait parameter provisionally-determiningmeans for provisionally determining parameters of a current time gaitincluding at least parameters determining a trajectory of the leg and atrajectory of the floor reaction force, in response to at least ademand; periodic gait parameter supposing means for supposing theparameters of a periodic gait succeeding to the current time gait inresponse to at least the demand; periodic gait boundary divergentcomponent determining means for determining a periodic gait boundarydivergent component that is a value indicating a divergent component atgait boundary when behavior of the body of the periodic gait isapproximated by the dynamic model, based on the parameters of theperiodic gait; current time gait parameter correcting means forcorrecting the parameters of the current gait such that the divergentcomponent becomes equal to or becomes substantially equal to each otherat terminal of the current gait generated with use of the dynamic model;and current time gait instantaneous value determining means fordetermining instantaneous values of the current time gait based on atleast the corrected parameters of the current time gait. With this, thesystem can achieve the same advantages and effects as those mentionedwith reference to claim 1.

As defined in claim 3, it is configured that a transitional gait isinserted between the current time gait and the periodic gait succeedingthereto. With this, in addition to the advantages and effects mentionedwith reference to claim 1, since a constraint condition (boundarycondition) in determining or setting the periodic gait becomes loose andit becomes possible to determine the to be closer to that desired, themargin of stability of the gait is made higher.

As defined in claim 4, it is configured that the transitional gaitincludes a standstill gait. With this, in addition to the advantages andeffects mentioned with reference to claim 1, the determination of thedivergent component at the boundary of the periodic gait is made easierand the margin of stability of at sudden stop is made higher.

As defined in claim 5, there is provided a system for generating a gaitof a legged mobile robot having at least a body and a plurality of legseach connected to the body, comprising: leg reaction force calculatingmeans for calculating a leg reaction force that is a resultant force ofinertial force and gravity induced by a motion of the leg, withoutdepending on behavior of the body; inverted pendulum model supportingpoint position calculating means for calculating a position of asupporting point of an inverted pendulum that describes dynamic behaviorof the body, from at least the calculated leg reaction force and adesired floor reaction force; inverted pendulum displacement calculatingmeans for calculating displacement of the inverted pendulum based on atleast the calculated position of the supporting point of the invertedpendulum; body position calculating means for calculating a position ofthe body based on at least the calculated displacement of the invertedpendulum; and gait generating means for generating a gait based on atleast the calculated position of the body.

Since it is configured to calculate a leg reaction force that is aresultant force of inertial force and gravity induced by a motion of theleg, without depending on behavior of the body, calculate a position ofa supporting point of an inverted pendulum that describes dynamicbehavior of the body, from the calculated leg reaction force and adesired floor reaction force, calculate displacement of the invertedpendulum based on the calculated position of the supporting point of theinverted pendulum, calculate a position of the body based on thecalculated displacement of the inverted pendulum, generate a gait basedon the calculated position of the body, the system can simplify thedynamic model that models the legged mobile robot and can enhance thelinearity of the model.

Specifically, assuming the legged mobile robot as a biped robot, sincethe dynamic behavior is described by the inverted pendulum and all theforces are converted into a value indicative of the floor reaction force(more specifically, the ZMP), it becomes possible to achievelinear-combination of behavior of the robot body, and hence it becomespossible to conduct predictive calculation as to whether behavior of themodel diverges on a real-time basis, thereby enabling to generating agait that is more stable in dynamics.

As defined in claim 6, there is provided a system for generating a gaitof a legged mobile robot having at least a body and a plurality of legseach connected to the body, comprising: leg ZMP calculating means forcalculating a leg ZMP that is corresponding to a ZMP of the leg that isa pseudo value of a resultant force of inertial force and gravityinduced by a motion of the leg, without depending on behavior of thebody; inverted pendulum model supporting point position calculatingmeans for calculating a position of a supporting point of an invertedpendulum that describes dynamic behavior of the body, from at least thecalculated ZMP and a desired ZMP; inverted pendulum displacementcalculating means for calculating displacement of the inverted pendulumbased on at least the calculated position of the supporting point of theinverted pendulum; body position calculating means for calculating aposition of the body based on at least the calculated displacement ofthe inverted pendulum; and gait generating means for generating a gaitbased on at least the calculated position of the body. With this, thesystem can achieve the same advantages and effects as those mentionedwith reference to claim 5.

As defined in claim 7, it is configured that the inverting pendulummodel supporting point calculating means calculates the supporting pointof the inverted pendulum by subtracting a product obtained bymultiplying the leg ZMP by a second coefficient from a product obtainedby multiplying the desired ZMP by a first coefficient. With this, itbecomes possible to achieve linear-combination of behavior of the robotbody more completely, and hence it becomes possible to conductpredictive calculation as to whether behavior of the model diverges on areal-time basis, thereby enabling to generating a gait that is morestable in dynamics. Further, since it becomes possible to generate amotion (other than the gait) on a real-time basis, it becomes possibleto combine the motion and the gait smooth.

As defined in claim 8, there is provided a system for generating a gaitof a legged mobile robot having at least a body and a plurality of legseach connected to the body, comprising: a dynamic model having; a legreaction force calculating means for calculating a leg reaction forcethat is a resultant force of inertial force and gravity induced by amotion of the leg, without depending on behavior of the body; invertedpendulum model supporting point position calculating means forcalculating a position of a supporting point of an inverted pendulumthat describes dynamic behavior of the body, from at least thecalculated leg reaction force and a desired floor reaction force;inverted pendulum displacement calculating means for calculatingdisplacement of the inverted pendulum based on at least the calculatedposition of the supporting point of the inverted pendulum; and bodyposition calculating means for calculating a position of the body basedon at least the calculated displacement of the inverted pendulum;current time gait parameter provisionally-determining means forprovisionally determining parameters of a current time gait including atleast parameters determining a trajectory of the leg and a trajectory ofthe floor reaction force, in response to at least a demand; periodicgait parameter supposing means for supposing the parameters of aperiodic gait succeeding to the current time gait in response to atleast the demand; periodic gait boundary divergent component determiningmeans for determining a periodic gait boundary divergent component thatis a value indicating a divergent component at gait boundary whenbehavior of the body of the periodic gait is approximated by the dynamicmodel, based on the parameters of the periodic gait; current time gaitparameter correcting means for correcting the parameters of the currentgait such that the divergent component becomes equal to or becomessubstantially equal to each other at terminal of the current gaitgenerated with use of the dynamic model; and current time gaitinstantaneous value determining means for determining instantaneousvalues of the current time gait based on at least the correctedparameters of the current time gait. With this, the system can achievethe same advantages and effects as those mentioned with reference toclaims 1 and 5.

As defined in claim 9, it is configured that the floor reaction forceincludes at least a ZMP. With this, in addition to the advantages andeffects mentioned with reference to claims 1 and 5, it becomes easy todescribe the floor reaction force, thereby enabling to have theadvantages and effects more firmly.

As defined in claim 10, it is configured that the inverted pendulum is alinear model. With this, the system can achieve the same advantages andeffects as those mentioned with reference to claims 1 and 5, inparticular in claim 5.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic view showing an overall configuration of a gaitgeneration system of a legged mobile robot according to an embodiment ofthe present invention;

FIG. 2 is an explanatory side view showing the structure of the foot ofa legged mobile robot illustrated in FIG. 1;

FIG. 3 is a block diagram showing details of a control unit mounted onthe robot illustrated in FIG. 1;

FIG. 4 is a block diagram showing the configuration of the gaitgeneration system of a legged mobile robot illustrated in FIG. 1 in afunctional manner;

FIG. 5 is an explanatory view showing a dynamic model that approximatesthe legged mobile robot illustrated in FIG. 1 by an inverted pendulum tobe used by a gait generator illustrated in the configuration shown byFIG. 4;

FIG. 6 is a block diagram showing dynamic calculation conducted by thegait generator with the use of the dynamic model illustrated in FIG. 5;

FIG. 7 is a set of time charts showing a trajectory of a point of actionP of the resultant force of the inertial force and gravity of the leg'smaterial point, to be used in calculating a pseudo ZMP value ZMPpendindicative of the supporting point of the inverted pendulum of thedynamic model illustrated in FIG. 5;

FIG. 8 is an explanatory view showing a situation where a trajectory ofthe body of the robot illustrated in FIG. 1 diverges;

FIG. 9 is a set of time charts showing the pseudo ZMP value ZMPpend, indiscretized form, indicative of the supporting point of the invertedpendulum of the dynamic model illustrated in FIG. 5;

FIG. 10 is a time chart similarly showing a trajectory of the pseudo ZMPvalue ZMPpend, in waveform, indicative of the supporting point of theinverted pendulum of the dynamic model illustrated in FIG. 5;

FIG. 11 is a set of time charts showing resolved parts of the waveformof the pseudo ZMP value ZMPpend illustrated in FIG. 10;

FIG. 12 is a flow chart showing the operation of the gait generationsystem of a legged mobile robot illustrated in FIG. 1;

FIG. 13 is an explanatory view explaining steady turning gait to be usedin the processing of the flow chart of FIG. 12, from a landing positionand the like;

FIG. 14 is an explanatory view explaining a body trajectory of thesteady turning gait to be used in the processing of the flow chart ofFIG. 12, from the landing position and the like;

FIG. 15 is a subroutine flow chart showing the calculation of an initialdivergent component of the steady turning gait referred to in the flowchart of FIG. 12;

FIG. 16 is a set of time charts explaining correction of a desired ZMPof current time gait parameters conducted in the processing of the flowchart of FIG. 12 based on the initial divergent component calculated bythe processing shown in FIG. 15;

FIG. 17 is a subroutine flow chart showing the correction of the desiredZMP of the current time gait parameter conducted in the processing ofthe flow chart of FIG. 12 based on the initial divergent component;

FIG. 18 is a subroutine flow chart showing the calculation ofinstantaneous values of the current time gait referred to in the flowchart of FIG. 12;

FIG. 19 is a time chart showing the body trajectory generated by thegait generation system of a legged mobile robot according to the firstembodiment of the present invention;

FIG. 20 is a subroutine flow chart, similar to FIG. 15, but showing thecalculation of the initial divergent component of the steady turninggait, that is the operation of a gait generation system of a leggedmobile robot according to a second embodiment of the present invention;

FIG. 21 is a subroutine flow chart, similar to FIG. 17, but showing thecorrection of the desired ZMP of the current time gait parameter in theoperation of the gait generation system of a legged mobile robotaccording to the second embodiment;

FIG. 22 is a view, similar to FIG. 13, but showing examples of thesteady turning gait used in a gait generation system of a legged mobilerobot according to a third embodiment of the present invention; and

FIG. 23 is an explanatory view showing a biped robot of a legged mobilerobot modeled with all links set with material points.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The gait generation system of a legged mobile robot according to thepresent invention will be explained with reference to the accompanieddrawings. A biped robot is taken as an example of the legged mobilerobot.

FIG. 1 is a schematic view showing an overall configuration of the gaitgeneration system according to the present invention.

As illustrated in the figure, a biped robot (hereinafter simply referredto “robot”) 1 has a pair of right and left legs (leg links) 2 eachcomposed of six joints. The six joints include, arranged successivelydownward, a pair of hip joints 10R, 10L (the right-hand joint isindicated by R and the left-hand joint by L) for rotating legs withrespect to hips, a pair of hip joints 12R, 12L in the rolling axis(about an X-axis), a pair of hip joints 14R, 14L in the pitching axis(about a Y-axis), a pair of knee joints 16R, 16L in the pitching axis, apair of ankle joints 18R, 18L in the pitching axis, and a pair of joints20R 20L in the rolling axis.

The robot is provided with feet 22R, 22L underneath of the joints 18R(L)and 20R(L), and a body (trunk) 24 at its top which houses a control unit26 comprising microcomputers (explained later). In the above, the joints10R(L), 12R(L), 14R(L) make up the hip joints, and the joints 18R(L),20R(L) make up the ankle joints. The hip joints and knee joints areconnected to each other by thigh links 28R, 28L, and the knee joints andankle joints are connected to each other by crus or shank links 30R,30L.

Further, two arms are connected at upper parts of the body 24 and a headis provided at the top of the body 24. However, since the upperconfiguration does not have direct relationship with the gist of thepresent invention, the illustration is omitted.

With the above structure, each of the legs 2 is given six degrees offreedom. When the 6*2=12 joints are driven to suitable angles duringwalking, a desired motion is imparted to the entire leg structure tocause the robot to walk arbitrarily in a walking environment ofthree-dimensional (absolute) space. (In the specification, “*”represents multiplication in scalar calculation and outer product invector calculation.).

It should be noted that a position and a velocity of the body 24indicate a position and its displacement velocity of a predeterminedposition of the body 24, specifically a representative point of the body24.

As shown in FIG. 1, a known force sensor (more precisely, known as thesix-axis force and torque sensor) 34 is disposed at a position beloweach ankle joint for generating a signal indicative of three directionalcomponents Fx, Fy, Fz of force and three directional components Mx, My,Mz of torque or moment thereby of the force and outputs a signalindicative of foot landing and the floor reaction force (the load actingfrom the floor). Moreover, the body 24 has an inclination sensor 36which generates a signal indicative of inclination with respect to aZ-axis (the vertical direction (the direction of gravity)) and itsangular velocity. The electric motors of the respective joints arecoupled with respective rotary encoders which generate signalsindicative of angular displacements of the electric motors.

As illustrated in FIG. 2, a spring mechanism 38 is installed at aposition upward from the foot 22R(L), which constitutes a compliancemechanism 42 together with a sole elastic member 40 attached to the soleof the foot 22R(L). The spring mechanism 38 has a box-like guide member(not shown) connected to the foot 22R(L), and a piston member (notshown) connected to the side of the ankle joint 18R(L), 20R(L) and theforce sensor 34 and inserted in the guide member with an elastic membersuch that it moves in the guide member to a slight extent.

In the figure, the foot 22R(L) illustrated in thick lines shows acondition where no floor reaction force is imparted. When subjected tothe floor reaction force, the spring mechanism 32 and the sole elasticmember 34, which constitute the compliance mechanism 42, deform suchthat the foot 22R(L) shifts to the position and posture illustrated indashed lines. This configuration is significant not only for decreasingthe foot-landing impact, but also for enhancing the control performance.Since this configuration is disclosed in an application (JapaneseLaid-Open Patent Application No. Hei 5 (1993)-305584) proposed by theapplicant, no further explanation will be made.

Although not shown in FIG. 1, a joystick 44 is provided at anappropriate location of the biped robot 1, which enables an operatorfrom the outside to input a demand on gait, such as changing fromstraight advance to turning.

FIG. 3 is a block diagram which shows the details of the control unit 26comprised microcomputers. Outputs from the inclination sensor 36, etc.,are converted into digital signals by an A/D converter 50 and are thentransmitted through a bus 52 to a RAM 54. Output signals from the rotaryencoders that are disposed adjacent to the respective electric motorsare transmitted through a counter 56 to the RAM 54.

The control unit 26 includes a first arithmetic unit 60 and a secondarithmetic unit 62 respective of which comprises a CPU. As will beexplained later, the first arithmetic unit 60 conducts the gaitgeneration, calculates joint angle displacement commands, and outputsthe same to the RAM 54. The second arithmetic unit 62 reads the commandsand the detected values from the RAM 54, and calculates values(manipulated variables), and outputs the same through a D/A converter 66and servo-amplifiers to the electric motors which drive the respectivejoints.

FIG. 4 is a block diagram showing overall configuration and operation ofthe gait generation system of legged mobile robot according to theembodiment.

Explaining this, the system includes a gait generator 100 whichgenerates a desired gait freely and on a real-time basis and outputsthem as will be explained later. The desired gait comprises a desiredbody position and posture (trajectory), a desired foot position andposture (trajectory), a desired total floor reaction force central point(desired ZMP) (trajectory) and a desired total floor reaction force(trajectory or pattern).

The floor reaction force acting on each foot 22R(L) is called a “footfloor reaction force”, whilst the resultant force of the foot floorreaction forces acting on both feet is called a “total floor reactionforce”. Since the foot floor reaction force will rarely been referred toin the following, the “floor reaction force” will be used as the “totalfloor reaction force” if it is not specifically described.

Explaining first the gait to be generated by the system, the presentinvention aims to provide a system which generates a gait on a real-timebasis as mentioned above. More specifically, the present invention aimsto generate a desired gait freely which is necessary for conducting therobot posture stability control utilizing the composite compliancecontrol proposed earlier by the applicant in Japanese Laid-Open PatentApplication No. Hei 10 (1998)-277969.

In the posture stability control proposed earlier, an error between adesired position and the detected position of the floor reaction force(ZMP) is determined, and either or both of the legs are moved todecrease the error, thereby ensuring posture stability. When the robotis about to turn over, the desired floor reaction force is intentionallyshifted so as to shift the actual floor reaction force, therebyrestoring the robot posture stability.

In a legged mobile robot, thus, it is impossible to ensure stablewalking or locomotion unless the relationship between the desired motiontrajectory and the desired floor reaction force pattern satisfies thedynamic equilibrium condition. To satisfy the dynamic equilibriumcondition means, to be more specific, that the central point of thedesired floor reaction force (the point of action on the floor at whichthe secondary moment of the desired floor reaction force distributionbecomes zero) is equal to the ZMP. If they do not accord with eachother, when the compliance control is operative, the robot loses balancebetween the resultant force of the inertial force and gravity and thefloor reaction force and will, at worse, turn over.

In the technique proposed earlier, this is deliberately utilized torestore stability when the robot is about to turn over. As is understoodfrom the above, the legged mobile robot should have, as desired valuesin the control of locomotion, not only the desired motion pattern, butalso the desired floor reaction force pattern that satisfies the dynamicequilibrium condition against the desired motion pattern.

The desired floor reaction force is generally described by a point ofaction and by a force and moment acting thereat. Since the point ofaction can be set at any point, desired floor reaction force hasnumerous descriptions. However, if the desired floor reaction force isdescribed by selecting the aforesaid desired floor reaction forcecentral point as a point of action, the moment of force is zero exceptfor its vertical component.

As stated above, in a gait that satisfies the dynamic equilibriumcondition, since the ZMP calculated from the desired motion trajectoryand the desired floor reaction force central point are equal to eachother, the desired ZMP trajectory can be used in lieu of the desiredfloor reaction force central point trajectory.

Therefore, the above can be rewritten as; “the legged mobile robotshould have, as desired values in the control of locomotion, not onlythe desired motion pattern or trajectory, but also the desired ZMPtrajectory (desired floor reaction force pattern)”.

Based on the above, the desired gait is defined in this specification asfollows:

a) The desired gait is, in a broad sense, a set of the desired motiontrajectories and the desired floor reaction force pattern over a periodof a walking step or steps.

b) The desired gait is, in a narrow sense, a set of the desired motiontrajectories and the ZMP trajectory for a period of a single walkingstep.

c) A series of walking is comprised of a series of gaits.

Hereinafter, for a more rapid understanding, the desired gait is used torepresent that gait defined in the narrow sense, unless it is mentionedto the contrary. Specifically, the desired gait is used to mean a gaitfor a period beginning from the initial state of a two-leg supportingperiod to the terminal state of a one-leg supporting period succeedingthereto. Here, needless to say, the two-leg supporting period means aperiod during which the robot 1 supports its weight with two legs 2,whereas the one-leg supporting period means a period during which therobot supports its weight with one of the two legs 2. The leg (leg link)2 which does not support the robot weight during the one-leg supportingperiod is called the free leg. Since the definitions are described indetail in the proposed application (Hei 10(1998)-86081), no furtherexplanation will be made.

The object of the present invention is to generate the desired gaitdefined above freely and on a real-time basis. If such a gait can begenerated freely and on a real-time basis, it becomes possible, forexample, for an operator to manipulate the robot 1 by remote control.Moreover, in manipulating the robot automatically, it becomes possiblenot only to control the robot to walk in accordance with a predeterminedsequence, but also to guide the robot to walk along a path or to effecthigh precision positioning.

Here, conditions which the desired gait must satisfy will be explained.

The conditions which the desired gait must satisfy will generally beclassified into the following five:

Condition 1) The desired gait must satisfy the dynamic equilibriumcondition. In other words, the ZMP trajectory calculated dynamicallyfrom the desired motion trajectories of the robot 1 should accord withthe desired ZMP trajectory.

Condition 2) When a demand(s) on stride or in the angle of turning,etc., is made by a locomotion planner or path planner (neither shown) ofthe robot 1 or by an operator, the desired gait must satisfy thedemand(s).

Condition 3) The desired gait must satisfy constraint condition inkinematics such as that the robot foot must not dig or scrape the flooron which it walks, the joint angle must be within a movable range, andthe joint angular velocity must not exceed a permissible range.

Condition 4) The desired gait must also satisfy conditions of constraintin dynamics such as the ZMP having to remain within the foot solefloor-contact area during the one-leg supporting period, and that thejoint torque must not exceed a possible maximum power of the jointactuators.

Condition 5) The desired gait must satisfy boundary condition. As amatter of course, condition 1) results in the boundary condition thatthe position and velocity of robot's each part such as the body must becontinuous in the gait boundary. (If not, infinite force would occur orthe ZMP would move far away from the foot sole floor-contact area).

More specifically, the initial state of n+1-th gait should correspond tothe terminal state of n-th gait, especially in the body position,posture and velocity relative to the foot position. If the initial stateof n+1-th gait is already determined, it suffices if the terminal stateof n-th gait is accorded with the n+1-th gait initial state. If notdetermined, it suffices if the terminal state of n-th gait is within arange that ensures continuous walking without losing posture stability.However, as will be discussed later, it is quite difficult to determinethe terminal state range which ensures continuous walking without losingposture stability.

Generally speaking, the desired gait is generated by a gait generationalgorithm including parameter values or time-series table data. (Inother words, to determine a gait means to determine the parameter valuesor time-series table data appropriately.)

Various kinks of gaits can be generated by changing the parameter valuesor time-series table data. However, if the parameters or time-seriestable data are determined without paying careful attention, it isuncertain whether the generated gait can satisfy all of the conditionsmentioned above.

In particular, when generating the body trajectory satisfyingcondition 1) based on the ZMP trajectory by a gait generation algorithm,even if the ranges, suitable for continuous walking, of the bodyposition and velocity at the gait terminal are known, it is difficult todetermine the parameters relating to the ZMP trajectory such that boththe body position and velocity will fall within the range at the gaitend.

The reasons of the difficulty are as follows:

Reason 1) The robot body tends, once begins to move away from the ZMP,to move farther away therefrom. This will be explained using an invertedpendulum model which approximates the behavior of the robot body.

If the inverted pendulum's supporting point deviates from a floor point(projected from its center of gravity, the deviation diverges and thependulum turns over. Even at the time of turnover, the resultant forceof the inertial force and gravity of the inverted pendulum is acting onthe supporting point (in other words, the ZMP is kept equal to thesupporting point), and the resultant force is kept balanced with thefloor reaction force acting through the supporting point. The dynamicequilibrium condition can merely describe the relationship, at instance,between the inertial force and gravity and the floor reaction force of amoving object.

It is a frequent misconception that continuous robot walking is ensuredif the dynamic equilibrium condition is satisfied. However, satisfactionof the dynamic equilibrium condition does not mean the robot is at astable posture. Likes the center of gravity of the inverted pendulumtends, if begins to move away, to move further away, the center ofgravity of the robot tends, once begins to move away from the positionimmediately above the ZMP, to move farther away therefrom.

Reason 2) The one-leg supporting period requires that the ZMP must bewithin the supporting leg foot sole floor-contact area, etc. Due torigid conditions of constraint such as this, it is difficult todetermine the body acceleration and deceleration patterns. If the bodypatterns are determined mainly taking body position into account, thevelocity would tend to be out of range, and vice versa.

As stated, it has hitherto been difficult to generate or determine thedesired gait parameters or table data, on a real-time basis, which willsatisfy all of the possible gait conditions. The aforesaid prior arttechniques described in the references could not effect free gaitgeneration.

Continuing the explanation of the gait, the gait is described by gaitparameters. The gait parameters comprise motion parameters and the ZMPparameter (more generally floor reaction force parameter). The “floorreaction force parameter” is used in this specification to mean aparameter relating to the floor reaction force pattern with respect totime.

The ZMP trajectory is expressed by a broken-line pattern as will beexplained with reference to FIG. 16 (referred to only in theX-coordinate in the figure) and is described or expressed with respectto the coordinate of X, Y and Z (directions) by the positions of thebraking points and passing times of the pattern.

The motion parameters comprise foot (trajectory) parameters and the body(trajectory) parameters.

The foot trajectory parameters comprise initial free leg (foot lifting)position and posture, terminal free leg (foot landing) position andposture, and durations of the two-leg supporting period and the one-legsupporting period, etc. Based on these, instantaneous values of thepositions (xf, yf, zf) and posture (θxf, θyf, θzf) of foot aredetermined in accordance with the techniques proposed earlier by theapplicant in Japanese Laid-Open Patent Applications Hei 5 (1993)-318339and Hei 5 (1993)-324115. Here, the word “posture” means inclination ordirection in space.

The body trajectory parameters comprise parameters determining the bodyposture (the direction or inclination of the body 24 in space),parameters determining the body height (value in the Z-direction),parameters determining initial body position (displacement) andvelocity, etc.

Based on the parameters determining the body position and posture,instantaneous values of the horizontal body position (xb, yb) andposture (θxb, θyb, θzb) of the body are determined in accordance withtime functions or the technique proposed earlier by the applicant inJapanese Laid-Open Patent Application Hei 5 (1993)-324115. The height ofbody zb is determined using an appropriate technique such as thatdescribed in Japanese Laid-Open patent Application No. Hei 10(1998)-86080 proposed by the applicant.

Since the robot 1 has 12 joints as illustrated in FIG. 1, desired jointdisplacements are solely deterministically calculated by an inversekinematic solution from the obtained feet position and posture and thebody position and posture, as will be explained later. Morespecifically, the desired robot posture at the current time is solelydetermined.

Aside from the above, since the generation of an ideal desired gait cannot act against physical laws, a demanded state can not be reachedimmediately. The transition to the demanded state should be achievedslowly by changing gait parameters such as the ZMP trajectory, landingposition and landing time, etc., within permissible ranges. Inparticular, assuming the dynamic system of the biped robot in thisembodiment as a system that inputs the ZMP and outputs the bodyposition, it is a divergence system. Unless the gait parameter change isconducted carefully, it becomes difficult to restore to a normal state.

Therefore, when generating a gait as desired on a real-time basis, it ispreferable to predict robot's future behavior and to determine the gaitparameters such that the robot's future behavior, e.g., a behavior atseveral walking steps from now does not diverge, and to correct the gaitso as to avoid divergence if a possibility of occurrence of thedivergence is predicted.

However, as discussed above, when the multiple-material-point model asshown in FIG. 23 is used, since the volume of calculation is large andthe system is not linear, it is quite difficult for a usual on-board CPU(mounted on the robot, i.e., the first arithmetic unit 60) to determinethe gait terminal state on a real-time basis. And as regards the futurebehavior prediction and divergence prevention technique based thereonmight be realized to a certain level, by, for example, storing variouskinds of knowledge and by selecting a desired gait at every gaitswitching in response to the state and objective at that time from thestored knowledge. In practice, however, a trial to cope with allpossible condition would cause an explosion of combination, and thismethod would actually be impossible.

In view of the above, it is configured such that a dynamic model thatdescribes the dynamic behavior of the robot 1 is simplified in such away that future robot behavior can analytically be predicated incalculation on a real-time basis. FIG. 5 shows the simplified robotdynamic model. As illustrated, this dynamic model isthree-material-point model and is decoupled, i.e., the dynamics of theleg and those of the body do not interfere with each other and thedynamics of the robot as a whole are expressed by their linearcombination. FIG. 6 is a block diagram showing dynamic calculation(conducted at a dynamic calculator in the gait generator 100) using thedynamic model illustrated in FIG. 5.

The dynamic model will be explained.

1) This model comprises three material points made up of an invertedpendulum, a foot material point of the supporting leg and a footmaterial point of the free leg.

2) The supporting leg foot material point is set at a fixed point on acoordinate system set locally at the supporting leg foot. The coordinatesystem is a XYZ rectangular coordinate system in which the origin isdefined on a sole of the foot, projected from the center of ankle ontothe sole of the foot, the X-Y plane is equal to the sole and the X-axisis defined as the direction from the heel to toe. This coordinate systemis hereinafter referred to as “supporting leg local coordinate system”.A coordinate system on the fixed point on the supporting leg localcoordinate system is hereinafter referred to as “supporting leg footmaterial point's offset”.

Similarly, free leg foot material point is set at a fixed point on acoordinate system that is set at the free leg foot. This coordinatesystem is hereinafter referred to as “free leg local coordinate system”.A coordinate system on the fixed point on the free leg local coordinatesystem is hereinafter referred to as “free leg foot material point'soffset”.

A coordinate system whose origin is defined on a foot point projectedfrom the center of ankle onto the floor when the supporting leg foot isentirely in contact with the floor, and whose coordinate axes are fixedon the floor in such manner that the X-axis is defined as the frontdirection of the supporting leg foot, the Y-axis is defined in the leftdirection and the Z-axis is defined in the vertical direction, ishereinafter referred to as “supporting leg coordinate system” (that isdifferent from the above-mentioned supporting leg local coordinatesystem. Unless it is mentioned to the contrary, the position, thevelocity, the force, etc., are expressed by the supporting legcoordinate system.

3) The inverted pendulum comprises a supporting point a that is freelymovable in the horizontal direction, a material point b and a link cthat connects the supporting point and the material point. The link isexpansible and has no mass. It is assumed here that the link expands,when tilting, such that the height of the mass viewed from thesupporting point is kept constant. The inverted pendulum is the same asa linear inverted pendulum of a robot disclosed in the aforesaidpublication (Hei 4 (1992)-15068).

The material point of the inverted pendulum corresponds to the materialpoint of the body 24 in the sense of physics (the body's material pointdoes not always indicate the center of gravity). Accordingly, thematerial point of the inverted pendulum is the same as the materialpoint of the body. The position (more broadly, the displacement) of theinverted pendulum's material point is simply referred to as “invertedpendulum position”.

4) The horizontal position of the body is geometrically determined fromthe inverted pendulum's horizontal position. Specifically, it isdetermined such that a horizontal position (X-Y coordinate system viewedfrom the supporting leg coordinate system) of the representative point(hereinafter referred to as “body-representing point”) on a coordinatesystem locally set at the body (the coordinate is hereinafter referredto as “body coordinate system”) becomes equal to the inverted pendulum'shorizontal position. More specifically, the body-representing point andthe inverted pendulum's material point b are determined such that theyare on the same vertical line, as illustrated in FIG. 5. A horizontalcoordinate of the body-representing point on the body coordinate systemis referred to as “body material point's offset”.

The description of variables and parameters relating to the illustrateddynamic calculation model will then be explained.

For ease of explanation, variables and parameters relating to thedynamic calculation model are defined and described as follows:

The ZMP of the inverted pendulum shall be present at the supportingpoint a since the ZMP is defined as a point at which no moment isgenerated and the supporting point is free and hence no moment isgenerated there. Accordingly, since the inverted pendulum's supportingpoint can be regarded as the ZMP of the pendulum itself, it is referredto as “inverted pendulum's ZMP” and is, on and after, described orexpressed as “ZMPpend”.

Mass and position of the individual material points are described asfollows:

msup: supporting leg's material point mass

mswg: free leg's material point mass

mb: inverted pendulum's material point mass (body's material point mass)

mtotal: robot mass (=mb+msup+mswg)

mfeet: feet mass (=msup+mswg)

xsup: supporting leg's material point position

xswg: free leg's material point position

xb: inverted pendulum's position (body's material point position)

On and after, xb is expressed by three-dimensional vector (XYZcoordinate system vector), if not mentioned to the contrary. The heightof the inverted pendulum indicates the height from the supporting pointto the material point and is described as h.

d(xb)/dt is the first order differential of xb and indicates thevelocity of the inverted pendulum, whereas d2(xb)/dt2 is the secondorder differential of xb and indicates the acceleration of the invertedpendulum. The value g is a constant of the acceleration of gravity. G isa vector of the acceleration of gravity and is defined as a vector whoseX, Y components are 0 and Z component is—g.

In the illustrated three-material-point model, moment of total inertialforce of the leg material point acting about a point of action P isdefined as “leg's total inertial force moment about point P”. Here, theresultant force of the inertial force and gravity is hereinafterreferred to “total inertial force”. The coordinate (or position) of thepoint of action P is described as xp.

Eq. 1, mentioned below, is an equation strictly defining, in terms ofdynamics, of the leg's total inertial force moment about Pleg's total inertial force moment aboutP=msup(xsup−xp)*G−msup(xsup−xp)*d2(xsup)/dt2+mswg(xswg−xp)*G−mswg(xswg−xp)*d2(xswg)/dt2  Eq.1

The leg ZMP is described as ZMPfeet and is defined by Eq. 2. The heightof the leg ZMP (i.e., the Z component of ZMPfeet) is set to the samevalue as the height of the point P. Thus, the leg ZMP is a pseudo valueto be corresponding to the resultant force (total inertial force)generated by the leg motion.

 leg's total inertial force moment about P=mfeet*(ZMPfeet−xp)*G  Eq. 2

Inherently, the dynamics of the robot 1 illustrated in FIG. 1 isnon-linear. Therefore, by approximation, the relationship defined by Eq.3 is given between the desired ZMP, the leg ZMP (ZMPfeet) and theinverted pendulum's ZMP (ZMPpend).ZMPpend=mtotal/mb*desired ZMP−mfeet/mb*ZMPfeet  Eq. 3

Generally, the differential equation describing the behavior of a linearinverted pendulum is expressed by Eq. 4.d2(xb)/dt2's horizontal component=g/h*(xb's horizontalcomponent−ZMPpend's horizontal component)  Eq. 4

Here, the point of action P is set to improve the accuracy of modelapproximation. For example, as illustrated in a time chart of FIG. 7,the point of action P is set in such a manner that it moves, at the samespeed during the two-leg supporting period, from the origin of thesupporting leg coordinate system of gait immediately before (last timegait) to that of the current time gait.

The dynamic model proposed in the gait generation system of leggedmobile robot according to the embodiment, is expressed by the offsetsdescribing the relationship between the foot, the body and the materialpoints illustrated in FIG. 5 and the equations (Eqs. 1 to 4). Thisconfiguration makes it easy to predict future behavior, as will beexplained later.

Explaining the operation of the dynamic calculator of the gait generator100 (illustrated in FIG. 1) with reference to FIG. 6, it has a leg ZMPcalculator 200. The calculator 200 calculates the leg ZMP (ZMPfeet)based on Eqs. 1 and 2 and on the point of action P illustrated in FIG.7.

Then, it calculates the inverted pendulum's ZMP (ZMPpend) by multiplyingthe calculated ZMPfeet by mfeet/mtotal, by subtracting the product fromthe desired ZMP, and by multiplying the difference by mtotal/mb. Inother words, the inverted pendulum's ZMP is determined or calculated bysubtracting the product obtained by multiplying ZMPfeet (correspondingto or indicative of the leg ZMP) by a ratio between the leg's mass mfeetand the body material point's mass mb from the product obtained bymultiplying the desired ZMP by a ratio of the robot mass mtotal and thebody material point's mass mb. This processing corresponds to theprocessing of Eq. 3.

The behavior of the inverted pendulum is expressed by Eq. 4. Theinverted pendulum material point's horizontal position xb is determinedor calculated.

Further, as illustrated in FIG. 6, the dynamic calculator has a bodyposition determinator 202 which determines the horizontal body positionxb. Specifically, the determinator 202 determines the horizontal bodyposition in such a way that the horizontal position of thebody-representing point (illustrated in FIG. 5) is equal to thehorizontal position of the inverted pendulum.

Next, the gait for maintaining posture stability continuously will beexplained.

The dynamic model itself does merely calculate the body trajectory fromthe desired ZMP in such a manner that the dynamic equilibrium conditionat each instant is approximately satisfied. It can not prevent the bodytrajectory from diverging, it can not avoid the position of the body 24from deviating from a position corresponding to the positions of thefeet 22R(L), as illustrated in FIG. 8.

It will then be discussed how the relationship between the body and thefeet is appropriately retained so as to avoid divergence.

For ease of understanding, the nature of the linear inverted pendulumthat is especially significant for obtaining future body trajectoryanalytically will first be discussed. The explanation will be made withthe use of a discrete-time-series model.

Variables and parameters will be additionally defined for the invertedpendulum as follows:

ω0: natural angular frequency of inverted pendulum

ω0=sqrt (g/h) (here, sqrt indicate square root)

Δt: sample time

x[k]: inverted pendulum's position at k-th step (time kΔt)

v[k]: inverted pendulum's velocity at k-th step (time kΔt)

ZMPpend[k]: inverted pendulum's ZMP at k-th step (more precisely, it isassured that a signal obtained by 0-order holding the ZMPpend[k] is andis kept inputted from time kΔt to time (k+1)Δt. More specifically, it isassumed that the same signal is kept inputted to the inverted pendulumduring that time of period)

Further, values q[k] and p[k] are defined by Eq. 5 as follows:q[k]=x[k]+v[k]/ω0p[k]=x[k]−v[k]/ω0  Eq. 5

By discretizing the equation of motion of the inverted pendulum and bysolving with respect to q[k] and p[k], we obtain Eqs. 6 and 7. In theequations, “exp” indicates an exponential function (natural logarithm).$\begin{matrix}{{p\lbrack k\rbrack} = {{\exp\left( {{- \omega}\quad 0k\quad\Delta\quad t} \right)}*\left( {{p\lbrack 0\rbrack} + {\left( {{\exp\left( {{\omega 0\Delta}\quad t} \right)} - 1} \right){\sum\limits_{i = 0}^{k - 1}\quad\left( {{\exp\left( {{\mathbb{i}}\quad\omega\quad 0\Delta\quad t} \right)}*Z\quad{MP}\quad{{pend}\lbrack{\mathbb{i}}\rbrack}} \right)}}} \right)}} & {{Eq}.\quad 6}\end{matrix}$ $\begin{matrix}{{q\lbrack k\rbrack} = {{\exp\left( {\omega\quad 0k\quad\Delta\quad t} \right)}*\left( {{q\lbrack 0\rbrack} + {\left( {{\exp\left( {{- {\omega 0\Delta}}\quad t} \right)} - 1} \right){\sum\limits_{i = 0}^{k - 1}\quad\left( {{\exp\left( {{- {\mathbb{i}}}\quad\omega\quad 0\Delta\quad t} \right)}*Z\quad{MP}\quad{{pend}\lbrack{\mathbb{i}}\rbrack}} \right)}}} \right)}} & {{Eq}.\quad 7}\end{matrix}$

The meaning of the equations will be discussed.

Assume that ZMPpend[i] is set to satisfy following Eq. 8 with respect tocertain definite constants ZMPmin and ZMPmax.ZMPmin≦ZMPpend[i]≦ZMPmax  Eq. 8

By substituting the relationship between the middle term and the rightterm of Eq. 8 into Eq. 6, we obtain following Eq. 9. $\begin{matrix}{{p\lbrack k\rbrack} \leq {{\exp\left( {{- \omega}\quad 0k\quad\Delta\quad t} \right)}*\left( {{p\lbrack 0\rbrack} + {\left( {{\exp\left( {{\omega 0\Delta}\quad t} \right)} - 1} \right){\sum\limits_{i = 0}^{k - 1}\quad\left( {{\exp\left( {{\mathbb{i}}\quad\omega\quad 0\Delta\quad t} \right)}*Z\quad{MP}\quad\max} \right)}}} \right)}} & {{Eq}.\quad 9}\end{matrix}$

From the theorem of sum of geometric series, we obtain Eq. 10.$\begin{matrix}{{\sum\limits_{i = 0}^{k - 1}\quad{\exp\left( {{\mathbb{i}}\quad\omega\quad 0\Delta\quad t} \right)}} = {\left( {1 - {\exp\left( {k\quad\omega\quad 0\Delta\quad t} \right)}} \right)/\left( {1 - {\exp\left( {{\omega 0\Delta}\quad t} \right)}} \right)}} & {{Eq}.\quad 10}\end{matrix}$

Accordingly, Eq. 9 can be rewritten as Eq. 11.p[k]≦exp(−ω0kΔt)*p[0]+(1−exp(−ω0kΔt))*ZMPmax  Eq. 11

Similarly, from the relationship between the left term and the middleterm of Eq. 8 into Eq. 6, we obtain Eq. 12.p[k]≧exp(−ω0kΔt)*p[0]+(1−exp(−ω0kΔt))*ZMPmin  Eq. 12

Since exp(−ω0kΔt) converges (gradually approaches) to 0 when k becomesinfinity, Eqs. 11 and 12 show p[k] does not diverge and fall betweenZMPmax and ZMPmin in due course, even if ZMPpend fluctuates.

Further, as a specific example, let us discuss a case that ZMPpendbecomes a constant value ZMP0 after lapse of a certain time. In thatcase, defining the time as time 0, Eq. 6 can be rewritten as Eq. 13.This indicates that p[k], irrespectively of its initial value, convergesto ZMP0 in a geometric series manner.p[k]=exp(−ω0kΔt)*(p[0]−ZMP0)+ZMP0  Eq. 13

More generally, it indicates that p[k], no matter what value it was at acertain time point, converges to a certain trajectory (that followswaveform of the ZMPpend) if the ZMPpend waveform is a same waveform.

On the other hand, q[k] tends to diverge as will be understood from Eq.7.

As a specific example, let us again discuss the case that ZMPpendbecomes a constant value ZMP0 after lapse of a certain time. Definingthe time as time 0, Eq. 7 can be rewritten as Eq. 14. This indicatesthat q[k] diverges to ZMP0 in a geometric series manner, if q[0] isZMP0.q[k]=exp(ω0kΔt)*(q[0]−ZMP0)+ZMP0  Eq. 14

Hereinafter, p[k] defined by Eq. 5 is referred to as “convergentcomponent” and q[k] similarly defined by Eq. 5 is referred to as“divergent component”.

From the above, it can be said that, in order to avoid divergence of thebody trajectory and to retain an appropriate positional relationshipbetween the body and feet, the convergent component can be neglected inpractice, and what is significant is that to control the divergentcomponent (viewed from the supporting leg) within a range that ensuresrobot walking.

More specifically, it can be said that it is important to determine theZMP trajectory parameters and other parameters appropriately such thatthe divergent component does not exceed the range that ensures robotwalking (i.e., the range that prevents posture from deviating markedly).Unless the body behavior is made linear in the present invention, it wasimpossible in the prior art to build equations where the divergentcomponent and the convergent component are separated like Eqs. 6 and 7.Thus, it was not possible to make these discussions in the prior art.Now, it becomes possible in this embodiment.

The nature of the convergent component and divergent component will beexplained.

Nature 1: Symmetry

The differences between the equations for obtaining the convergentcomponent p[k] and the divergent component q[k] is that p[k] is replacedwith q[k] and that ω0 is replaced with −ω0.

Nature 2: Equivalent Conversion

Since they are symmetric, the divergent component will only bediscussed.

Supposing as an input a pulse expressed by ZMPpend[0]=U0 andZMPpend[i]=0 (i=1,2, . . . ), q[k] at that case is obtained bysubstituting this ZMPpend[i] into Eq. 7, as will be shown in Eq. 15.q[k]=exp(ω0kΔt)(q[0]+(exp(−ω0Δt)−1)U0)  Eq. 15

From this, considering the influence only upon the divergent componentq[k], to input the initial pulse U0 will bring the same influenceobtained by shifting the initial divergent component byU0*(exp(−ω0Δt)−1). In other words, the initial pulse is equivalentlyconverted into the initial divergent component by multiplying by(exp(−ω0Δt)−1).

Further, considering the influence only upon the divergent componentq[k] by comparing Eqs. 7 and 15 with each other, influence caused byinputting ZMPpend[i] (i=0,1,2, . . . k−1) will bring the same influenceas that obtained by the initial pulse input U0 defined in Eq. 16.$\begin{matrix}{{U0} = {\sum\limits_{i = 0}^{k - 1}\left( {{\exp\left( {{- \quad\omega}\quad 0\quad i\quad\Delta\quad t} \right)}*Z\quad{MP}\quad{{pend}\lbrack{\mathbb{i}}\rbrack}} \right)}} & {{Eq}.\quad 16}\end{matrix}$

Thus, the input ZMPpend[i] (i=0, 1, 2, . . . k−1) is equivalentlyconverted into the initial pulse input

Nature 3: Influence by Time Delay

As illustrated in FIG. 9, assuming that ZMPpend[i] is a function f(i),and that ZMPpend′[i] is a function f(i−nΔt) which is obtained bydelaying the function f(i) by a time nΔt, and defining conversion of theinput series ZMPpend[i] into the initial pulse as U0 and conversion ofthe input series ZMPpend′[i] into the initial pulse as U0′, U0′ will beexpressed as Eq. 17.U0′=U0*exp(−nω0Δt)  Eq. 17

In other words, the same waveform is inputted by delaying by the timenΔt, the divergent component induced by the input is a value multipliedby exp(−nω0Δt).

Then, a divergent component obtained by inputting complicated waveformof the inverted pendulum's ZMP into the inverted pendulum modelillustrated in FIG. 5.

The ZMP input given to the inverted pendulum of the dynamic modelillustrated in FIG. 5 (or Eq. 3) is a difference between the product ofthe desired ZMP and mtotal/mb, and the product of the leg ZMP andmfeet/mb. Since the desired ZMP is specifically expressed by a waveformof broken line, the product of the desired ZMP and mtotal/mb issimilarly expressed by a waveform of broken line.

Therefore, principle and algorithm to analytically determine thedivergent component induced by inputting the ZMP of broken-line waveformto the inverted pendulum will be explained. (The influence of the legZMP will be described later.) Actually, the inverted pendulum's ZMPmoves on a two-dimensional space (horizontal plane). However, for easeof understanding, it is assumed that the ZMP moves along a linear space.

Let us suppose a broken-line as illustrated in FIG. 10 as the waveformof the inverted pendulum's ZMP. Period i is defined as a period of timewhose length is period[i] and the initial value is ZMP[i]. The principleand algorithm to obtain the divergent component generated by this ZMPwill now be explained.

Let us define a value as H(f(t), T) which is obtained by converting adivergent component (generated by continuously inputting x=f(t) over theperiod of time [0,T] to the inverted pendulum model as the input of theinverted pendulum's ZMP), into magnitude of pulse inputted at time 0 andtime width is a sample time Δt.

From Eq. 6, H(f(t), T) is expressed by product-sum calculation shown inEq. 18. In the equation, ω indicates the natural angular frequency ofthe inverted pendulum). $\begin{matrix}{{H\left( {{f(t)},T} \right)} = {\sum\limits_{k = 0}^{{{T/\Delta}\quad t} - 1}{\left( {k\quad\Delta\quad t} \right){\exp\left( {{- \omega}\quad k\quad\Delta\quad t} \right)}}}} & {{Eq}.\quad 18}\end{matrix}$

The inverted pendulum's ZMP's waveform in the period i can be dissolvedinto a step-like waveform and a ramp-like waveform each having a delay,as illustrated in FIG. 11. Accordingly, H(f(t), T) for the step-like andramp-like waveforms should be determined beforehand in a mannermentioned below.

Specifically, describing H(f(t), T) of a step-like waveform of x=f(t)=1as H(1, T), it will be expressed as shown in Eq. 19, using the theoremof sum of geometric series.H(1,T)=(1−exp(−ωt))/(1−exp(−ωΔt))  Eq. 19

Describing H(f(t), T) of a ramp-like waveform of x=f(t)=t as H(t, T), itwill be expressed as shown in Eq. 20.

 H(t,T)/T=(Δt/T*exp(−ωΔt)H(1,T)−exp(−ωt))/(1−exp(−ωΔt))  Eq. 20

It should be noted that if the ZMP waveform is other than the form ofbroken-line, other function f will be needed. There could sometime be noanalytic solution of F(f(t), T) for the other function f. In that case,it will be sufficient if the function f is normalized and H(f(t), T) isthen changed to a table data. The value F(f(t), T) in the above may alsobe changed to a table data.

Having conducting these preparatory processing, a value (hereinafterreferred to as “W”), which is obtained by converting a divergentcomponent (generated by the inverted pendulum's ZMP illustrated in FIG.10), into magnitude of inverted pendulum's ZMP pulse inputted at time 0and the time width is a sample time Δt.

First, influence of the inverted pendulum's ZMP during the period i(i=0, 1, . . . 5) should be converted into the magnitude of a pulseinf[i] inputted at the initial time of the period i and its time widthis the sample time Δt. As illustrated in FIG. 11, the waveform of theinverted pendulum's ZMP during the period i is expressed by the sum of arectangular waveform whose height is ZMP[i] and whose slope is(ZMP[i+1]−ZMP[i])/period[i], the pulse conversion value will be as shownby Eq. 21.inf[i]=H(1, period[i])*ZMP[i]+H(t,period[i])/period[i]*(ZMP[i+1]−ZMP[i])  Eq. 21

Then, influence of the inverted pendulum's ZMP during the period[i](i=0, 1, . . . m) should be converted into the magnitude of a pulseinf′[i] inputted at the initial time of the period i and its time widthis the sample time Δt. From nature 3, the pulse conversion value will beas shown by Eq. 22. $\begin{matrix}{{{\inf\quad}^{\prime}\lbrack i\rbrack} = {{\inf\lbrack i\rbrack}*{\exp\left( {{- \omega}\quad 0\left( {\sum\limits_{k = 0}^{i - 1}{{period}\quad\lbrack k\rbrack}} \right)} \right)}}} & {{Eq}.\quad 22}\end{matrix}$

Influence of the inverted pendulum's ZMP waveform during all of theperiods illustrated in FIG. 10, will be the sum of the influence of theindividual periods. In other words, the pulse conversion value W iscalculated as shown in Eq. 23. $\begin{matrix}{W = {\sum\limits_{i = 0}^{m}\quad{{\inf\quad}^{\prime}\lbrack i\rbrack}}} & {{Eq}.\quad 23}\end{matrix}$

From nature 2, when equivalently converting W into an initial divergentcomponent, it will be as shown in Eq. 24.W*(exp(−ω0Δt)−1)  Eq. 24

From Eq. 24 or nature 3, when equivalently converting W into thedivergent component at gait terminal, it will be as shown in Eq. 25.$\begin{matrix}{W*\left( {{\exp\left( {{- {\omega 0}}\quad\Delta\quad t} \right)} - 1} \right)*{\exp\left( {{\omega 0}\left( {\sum\limits_{i = 0}^{m}{{period}\quad\lbrack i\rbrack}} \right)} \right)}} & {{Eq}.\quad 25}\end{matrix}$

Following the procedures mentioned above, it becomes possible toanalytically obtain the divergent component at gait terminal induced bythe inverted pendulum's ZMP expressed by a broken-like like waveform.

Then the gait generation algorithm that ensures continuous walking willbe explained.

As mentioned above, in order to avoid divergence of the body trajectoryand to retain an appropriate positional relationship between the bodyand feet, it is important to determine the ZMP trajectory parameters andother parameters appropriately such that the divergent component doesnot exceed the range that ensures robot walking (i.e., the range thatprevents posture from deviating markedly).

Next problem is therefore how to determine the range that ensures robotwalking or an appropriate value of the divergent value.

The gait generator 100 according to the embodiment determines anappropriate value of the divergent component by provisionallydetermining or setting a gait that is to be continuous to a current timegait now being generated. The gait that is to be continuous to thecurrent time gait is hereinafter referred to as “steady turning gait”and will be explained later.

The operation of the gait generator 100 will be explained in detail.

The gait generator inputs demand (demand value) concerning free legfoot's landing position and posture and landing time for next twowalking steps, and determines the desired body position and posturetrajectory, the desired foot position and posture trajectory and thedesired ZMP trajectory. At this time, the gait parameters are partiallycorrected so as to ensure continuous walking. Hereinafter, the gaitsbeing generated is referred to as “current time gait”, a gait succeedingthereto is referred to as “next time gait” and a gait further succeedingthereto is referred to as “next but one time gait”.

FIG. 12 is a flow chart (structuralized flow chart) showing the gaitgeneration of the gait generator 100.

The program begins at S10 in which various kinds of initializationprocessing including initializing a time t to 0 are conducted. Theprogram then proceeds, via S12, to S14 in which timer interrupt at everycontrol cycle is waited for. The control cycle (period) is Δt. Theprogram then proceeds to S16 in which it is determined whether the gaitis at the time of switching. When the result is affirmative, the programproceeds to S18, whilst when the result is negative, the programproceeds to S20.

When the program proceeds to S18, the time t is again initialized to 0.The program then proceeds to S22 in which a next time gait's supportingleg coordinate system, a next but one time gait's supporting legcoordinate system and a current time gait period and a next time gaitperiod are read. There values are corresponding to the aforesaid demand.They may be stored in the memory as a walking schedule or may bedetermined based on an instruction inputted from the joystick 44 orother operator apparatus and the history of walking up to that time.

The program then proceeds to S24 in which gait parameters of the currenttime gait are provisionally determined.

As regards the parameters, the current time gait's initial free legposition and posture are determined to be the current free leg footposition and posture viewed from the current time gait's supporting legcoordinate system (as the initial values). The current time gait'sinitial supporting leg foot position and posture are determined to bethe current supporting leg foot position and posture viewed from thecurrent time gait's supporting leg coordinate system (as the initialvalues). The current time gait's terminal free leg foot position andpostures are determined in response to the next time gait's supportingleg coordinate system viewed from the current time gait's supporting legcoordinate system. Specifically, they are determined in such a way thatthe foot position and posture of the free leg foot (obtained whenrotated horizontally, without slippage, from terminal position andposture in the current gait, while keeping contact with the floor) willshift to the next gait's supporting leg coordinate system.

The current time gait's terminal supporting leg foot position andposture are determined to position and posture where the foot is insurface contact with the floor so as not to slip (those are obtained bybeing rotated from the current supporting position and posture). As aresult, if the floor is flat, the current time gait's terminalsupporting leg foot position and posture are equal to the current timegait's supporting leg coordinate system. In the gait mentioned here,although the supporting leg foot is made horizontal at the gaitterminal, the foot may take other position and posture.

The ZMP trajectory parameters of the current gait should be determinedsuch that they are high in the margin of stability and do not changeabruptly. The phrase “high in the margin of stability” indicates acondition where ZMP is present at the center or thereabout in a minimumconvex polygon (the so-called supporting polygon and is described indetail in Japanese Laid-Open Patent Application Hei 10 (1998)-86081).The determination of current time gait's ZMP trajectory parameters isprovisional and they are subject to correction as will be explainedlater.

The program then proceeds to S26 in which gait parameters of the steadyturning gait that is to be continuous to the current time gait isdetermined. It should be noted that the “steady turning gait” indicatesa periodic gait that does not bring about discontinuity in motion atgait boundary when repeated.

Basically, the steady turning gait comprises the first turning gait andthe second turning gait. The reason why the term “turning” is used isthat, when the rate of turning is set to zero, since this indicates astraight advance, the term makes it possible to include “straightadvance” in “turning” in a broad sense. The steady turning gait isgenerated by the gait generator 100 temporarily or tentatively in orderto determine the divergent component at the current gait terminal.Therefore, the steady turning gait is not outputted from the gaitgenerator 100.

Incidentally, when following the aforesaid definition that the gaitcomprises one walking step that starts at the beginning of a two-legsupporting period and ends at the end of the one-leg supporting periodsucceeding thereto, the steady turning gait needs gaits for two walkingsteps. Although it is possible to set the steady turning gait of acomplicated form having a set of gaits for three walking steps or more,such a complicated gait setting is tedious and the advantages andeffects are less than expected since the steady turning gait is onlyused for determining the divergent component at the terminal of thecurrent time gait. If the legged mobile robot has three legs or more,the number of gaits to define the turning will be increased in responsethereto.

In the gait setting, boundary conditions of the leg trajectory in thegait parameters of the first turning gait and the second turning gaitare set or determined such that the leg trajectory is made continuous inthe order of the current time gait, the first turning gait and thesecond turning gait. Specifically, the initial free leg foot positionand posture of the first turning gait is set to be the terminalsupporting leg foot position and posture of the current time gait viewedfrom the next time gait's coordinate system. The initial supporting legposition and posture of the first turning gait is set to be the currenttime gait's terminal free leg position and posture viewed from the nexttime gait's supporting leg coordinate system.

The terminal free leg foot position and posture of the first turninggait is, similarly to the determination of the current time gait'sterminal free leg position and posture, set or determined in response tothe next but one's time gait's supporting leg coordinate system viewedfrom the next time gait's supporting leg coordinate system. The terminalsupporting leg position and posture of the first turning gait is footposition and posture obtained by rotating, while keeping floor contact,the foot (set to the next time gait's supporting leg coordinate system)to be brought in surface contact with the floor so as not to slip.Therefore, if the floor surface is flat, the terminal supporting legposition and posture of the first turning gait become equal to those inthe next time gait's supporting leg coordinate system.

The terminal free leg foot position and posture of the second turninggait are set or determined to be the same as the terminal free leg footposition and posture of the current gait viewed from the current timegait's supporting leg coordinate system. The terminal supporting legposition and posture of the second turning gait are set or determined tobe same as those of the supporting leg foot position and posture of thecurrent time gait viewed from the current time gait's supporting legcoordinate system.

FIG. 13 illustrates relationships among these gait parameters.

The first turning gait and the second turning gait have the same walkingperiod as that of the next time gait. (The waling period shouldnecessarily be determined to be the same value, but should preferably bedetermined in response to the next time gait walking period.) Othermotion parameters of the current time gait, the first turning gait andthe second turning gait (including time parameters such as two-legsupporting period's length) should be determined appropriately inresponse to the determined parameters mentioned above in such a way thatthey satisfy the conditions of gait (e.g., the velocity of the electricmotors (actuators) are within permissible ranges.)

The ZMP trajectory parameters of the first turning gait and the secondturning gait should be set or determined such that they have high marginof stability and do not change abruptly.

Aside from the above, if initial position and velocity of thebody-representing position are set to values X0, V0, after havinggenerated the aforesaid first turning gait and the second turning gaitwith the use of the simple model illustrated in FIG. 5, the initialposition and velocity of the body-representing position when the firstturning gait generation is again started, become equal to the set valuesX0, V0. The values X0, V0 are hereinafter referred to as“body-representing point's initial position/velocity of the steadyturning gait”. The value X0 should be described as “(x0, y0)”, but thedescription of V0 should be omitted.

With this, when the first turning gait and the second turning gait aregenerated repeatedly using the simple model illustrated in FIG. 5, thebody-representing point's initial position and velocity of the firstturning gait are equal to the values X0, V0, unless there areaccumulated calculation errors. In other words, the continuity ofwalking can be ensured. Divergent component at this time, i.e., X0+V0/ω0is hereinafter referred to as “steady turning gait's initial divergentcomponent”.

Returning the explanation of FIG. 12, the program then proceeds to S28in which this steady turning gait's initial divergent component isdetermined.

FIG. 15 is a flow chart showing the steady turning gait's initialdivergent component at S28 of the flow chart of FIG. 12.

Before entering the explanation of the figure, a principle fordetermining or calculating the steady turning gait's initial divergentcomponent will be mentioned.

From Eqs. 3 and 7, it becomes possible to obtain following equation (Eq.26): In the equation, the desired ZMP is described as ZMPtotal.$\begin{matrix}\begin{matrix}{{q\lbrack k\rbrack} = {{{\exp\left( {\omega\quad 0k\quad\Delta\quad t} \right)}*{q\lbrack 0\rbrack}} + {{\exp\left( {{\omega 0}\quad k\quad\Delta\quad t} \right)}*\left( {{- {\exp\left( {{\omega 0}\quad\Delta\quad t} \right)}} - 1} \right)}}} \\{{\sum\limits_{i = 0}^{k - 1}\quad\left( {{\exp\left( {{- \omega}\quad 0\Delta\quad t} \right)}*{{mtotal}/{mb}}*Z\quad{MP}\quad{{total}\lbrack{\mathbb{i}}\rbrack}} \right)} -} \\{{\exp\left( {{\omega 0}\quad k\quad\Delta\quad t} \right)}*\left( {{- {\exp\left( {{\omega 0}\quad\Delta\quad t} \right)}} - 1} \right)} \\{\sum\limits_{i = 0}^{k - 1}\quad\left( {{\exp\left( {{- {\mathbb{i}\omega}}\quad 0\Delta\quad t} \right)}*{{mfeet}/{mb}}*Z\quad{MP}\quad{{feet}\lbrack{\mathbb{i}}\rbrack}} \right)}\end{matrix} & {{Eq}.\quad 26}\end{matrix}$

Actually, every gait is expressed by the supporting leg coordinatesystem of that gait. However, for ease of explanation, it is supposedthat the first turning gait and the second turning gait are expressed bythe first turning gait's supporting leg coordinate system and that acombination of the first turning gait and the second turning gaitconstitutes a single gait (steady turning gait).

Determination of a divergent component q[k] at the terminal of thesteady turning gait by using Eq. 26 will then be explained. Thisdivergent component is hereinafter referred to as “terminal divergentcomponent”. The initial time of the steady turning gait is assumed to betime 0. The terminal time of the steady turning gait is assumed to betime kΔt. This terminal time is corresponding to the time 0 of the nexttime gait.

In this equation, the right first term indicates the terminal divergentcomponent induced by the initial divergent component. The right secondterm indicates the terminal divergent component induced by the desiredZMP pattern. The right third term indicates the terminal divergentcomponent induced by the leg motion.

Since the desired ZMP pattern is expressed in the form of broken-line,the terminal divergent component induced by the desired ZMP pattern isdetermined analytically using the algorithm described by Eqs. 19, 20,21, 22, 23 and 25 that determine the terminal divergent componentinduced by the aforesaid broken-line-like ZMPpend. The determined orobtained value is expressed as “Wzmptotal”. It is a vector intwo-dimension defined by the X and Y directions.

Then, the terminal divergent component induced by the leg motion isdetermined. Its simplest way of determination is to generate the legmotion in the gait generator from the aforesaid gait parameters of thesteady turning gait, to determine ZMPfeet[i] (i=0, 1, . . . k) from Eqs.1 and 2, and to substitute it into the right third term of Eq. 26.Although the volume of calculation is large, the calculation could becompleted within the control cycle if there is used a microcomputer thathas a high-performance but is still able to be mounted on the robot 1.When the performance of microcomputer is not high, if sample time is setto be longer the control cycle when conducting the calculation, althoughslight calculation error will happen, the volume of calculation can alsobe decreased,

The value, thus determined or obtained is expressed as “Wfeet”. It isalso a vector in two-dimension defined by the X and Y directions.

From the above, we obtain the following equation (Eq. 27):q[k]=exp(ω0kΔt)*q[0]+Wzmptotal+Wfeet  Eq. 27

Here, expressing the terminal divergent component of the steady turninggait viewed from the supporting leg coordinate system of the gait nextto the steady turning gait as q′[k], it must satisfy following equation(Eq. 28).q[0]=q′[k]  Eq. 28

While, expressing supporting leg coordinate system of the gait next tothe steady turning gait (X″, Y″ coordinate system in FIG. 13) viewedfrom the supporting leg coordinate system of the steady turning gait(X′, Y′ coordinate system in FIG. 13), by a rotation matrix M indicatingrotation of the coordinate system and a parallel translation vector Bindicating the origin coordinate of the coordinate system, it will be asshown in the following equation (Eq. 29).q[k]=Mq′[k]+B  Eq. 29

From Eqs. 28 and 29, we obtain Eq. 30.q[k]=Mq[0]+B  Eq. 30

Further, from Eqs. 30 and 27, we obtain Eq. 31.Mq[0]+B=exp(ω0kΔt)*q[0]+Wzmptotal+Wfeet  Eq. 31

When expressing the inverse matrix of the matrix A as inv(A), we obtainEq. 32 from Eq. 31. In the equation, I indicates a unit matrix.q[0]=inv(M−exp(ω0kΔt)I)(Wzmptotal+Wfeet−B)  Eq. 32

Based on the principle of determination mentioned above, explaining thesteady turning gait's initial divergent component with reference to theflow chart of FIG. 15, the program begins in S100 in which the terminaldivergent component induced by the desired ZMP is determined in themanner mentioned above. The program then proceeds to S102 in which theterminal divergent component induced by the leg motion is determinedusing the right third term of Eq. 26, and to S104 in which the steadyturning gait's initial divergent component q[0] is determined using Eq.32. The steady turning gait's initial divergent component q[0] is avalue viewed from the supporting leg coordinate system of the steadyturning gait. The program then proceeds to S106 in which the steadyturning gait's initial divergent component q[0] is converted into avalue viewed from the supporting leg coordinate system of the currenttime gait. This value is named q″.

The next processing is to correct the provisionally-determined currenttime gait parameters such that the terminal divergent component of thecurrent time gait becomes equal to q″. Since the processing is almostsame as that in the steady turning gait, the variables, values andsymbols will newly amended to be corresponding to those of the currenttime gait.

In this embodiment, the parameters correction is to be made only for theZMP trajectory parameters. Although the other gait parameters may becorrected, since the relationship between a parameter correction amountand the terminal divergent component becomes normally non-linear, it isaccordingly impossible to obtain the correction amount analytically.

The ZMP is corrected by adding a ZMP correction amount (correctionamount or additive amount) to the provisionally-determined desired ZMP(hereinafter referred to as “provisional desired ZMP”). FIG. 16illustrates the relationship between them.

As illustrated in the figure, the desired ZMP parameter is correctedsuch that the desired ZMP (ZMPtotal)=the provisional desired ZMP+the ZPMcorrection amount.

For ease of understanding, all variables are assumed to be linear in thefollowing.

The ZMP correction amount is trapezoidal as shown in the middle of FIG.16 and its height is expressed as “a”. Since the relationship betweenthe desired ZMP and the terminal divergent component is linear, theterminal divergent component Wzmptotal induced by the desired ZMPpattern can be expressed by Eq. 33.Wzmptotal=Wzmptmp+a*Wtrim  Eq. 33

In the equation, Wzmptmp indicates the terminal divergent componentinduced by the provisional desired ZMP of the current time gait. Wtrimindicates the terminal divergent component induced by the ZMP correctionamount when a is set to be 1. They are obtained or determinedanalytically in the manner of determining the terminal divergentcomponent induced by the desired ZMP pattern of the steady turning gait.

Since the terminal divergent component p[k] is p″, we obtain Eq. 34 fromEqs. 27 and 33.q″=exp(ω0kΔt)*q[0]+Wzmptmp+a*Wtrim+Wfeet  Eq. 34

Here, q[0] is the initial divergent component of the current time gait(i.e., initial inverted pendulum position+(initial inverted pendulumvelocity/ω0)). Accordingly, we obtain Eq. 35.a=(q″−exp(ω0kΔt)*q[0]−Wzmptmp−Wfeet)/Wtrim  Eq. 35

Finally, correcting the desired ZMP parameters such that the sum of theprovisional desired ZMP and the ZMP correction amount becomes thedesired ZMP, the terminal divergent component of the current time gaitbecomes equal to q″ (that corresponds to the initial divergent componentof the steady turning gait viewed from the current time gait).

Returning to the explanation of the flow chart of FIG. 12, the programproceeds to S30 in which the current time gait is corrected.Specifically, the current time gait parameters are corrected such thatthe current time gait's terminal divergent component becomes equal tothe steady turning gait's initial divergent component q″.

FIG. 17 is a flow chart showing the subroutine for correcting thecurrent time gait parameters.

Explaining it, the program begins in S200 in which the terminaldivergent component Wzmptmp induced by the current time gait'sprovisional desired ZMP is determined. The program then proceeds to S202in which the terminal divergent component Wtrim induced by the ZMPcorrection amount regarding a as 1, is determined.

The program then proceeds to S204 in which the terminal divergentcomponent Wfeet induced by the current time gait's leg motion isdetermined, to S206 in which the current time gait's initial divergentcomponent q[0] is determined from the inverted pendulum's initialposition and velocity and the trapezoidal height a is calculated bysubstituting the obtained q[0] into Eq. 35. The program then proceeds toS208 in which the desired ZMP parameters are corrected in the mannermentioned above.

The foregoing is processing at the gait switching.

Returning to the explanation of the flow chart of FIG. 12, the programthen proceeds to S20 in which instantaneous values of the current timegait are determined from the determined gait parameters.

FIG. 18 is a flow chart showing the subroutine for this.

Explaining it, the program begins in S300 in which the desired ZMP attime t is determined based on the current time gait parameters, andproceeds to S302 in which the desired foot position and posture at thetime t is determined based on the current time gait parameters.

The program then proceeds to S304 in which the desired body posture atthe time t is determined based on the current time gait parameters, toS306 in which the legZMP (ZMPfeet) at the time t is calculated from thedesired foot position and posture at and before the time t using Eqs. 1and 2.

The program then proceeds to S308 in which the inverted pendulum's ZMP(ZMPpend) is calculated using Eq. 3, to S310 in which the invertedpendulum's horizontal position is calculated from the invertedpendulum's ZMP using Eq. 4. The program then proceeds to S312 in whichthe body's horizontal position is determined from the invertedpendulum's horizontal position. Specifically, as mentioned above, it isdetermined such that the body-representing point's horizontal positionbecomes equal to the horizontal position of the mass of the invertedpendulum. The program then proceeds to S314 in which the body height isdetermined using method of body height determination proposed inJapanese Laid-Open Patent Application Hei 10 (1998)-86080 proposed bythe applicant.

Again returning to the explanation of the flow chart of FIG. 12, theprogram proceeds to S32 in which Δt is added to the time t, and theprogram returns to S14 to repeat the procedures mentioned above.

Additionally explaining the gait generation system according to thisembodiment with reference to FIG. 4, the desired gait is generated inthe gait generator 100 as mentioned above. Among of the gait parametersof the generated desired gait, the desired body position and posture(trajectory) are directly sent to a robot geometric model (inversekinematic solution) 102.

The rest of parameters including the desired foot position and posture(trajectory), the desired total floor reaction force central point(i.e., the desired ZMP) (trajectory) and the desired total floorreaction force (trajectory) are directly sent to a composite complianceoperation determinator 104. They are also sent to a desired floorreaction force distributor 106 in which the floor reaction force isdistributed to each foot (foot 22R(L) and the desired foot floorreaction force central point and the desired foot floor reaction forceare determined and are sent to the composite compliance operationdeterminator 104.

Corrected desired foot position and posture with deformationcompensation (trajectory) are sent from the composite complianceoperation determinator 104 to the robot geometric model 102. Based onthe inputs of the desired body position and posture (trajectory) and thecorrected desired foot position and posture with deformationcompensation (trajectory), the robot geometric model 102 calculatesjoint displacement command (values) on the twelve joints (such as thejoint 10R(L) so as to satisfy the trajectories and send the same to adisplacement controller 108. The displacement controller 108 controlsthe displacement of the twelve joints of the robot 1 so as to follow thejoint displacement command (values) calculated by the robot geometricmodel 102.

The floor reaction force induced in the robot by the joint displacementis detected by an actual foot floor reaction force detector 110 (i.e.,the force sensor 34), and the detected value is sent to the compositecompliance operation determinator 104. Posture inclination error θerrxor θerry is detected by the inclination sensor 36 and the detected valueis sent to a posture stabilization controller 112 in which compensatingtotal floor reaction force's moment about the desired total floorreaction force central point is calculated for posture stabilization andis sent to the composite compliance operation determinator 104. Thedeterminator 104 corrects the desired value(s) in response to theinputted value.

Since the gist of the present invention resides in the robot gaitgeneration in the gait generator 100 and since the configuration andoperation of the other components such as the composite complianceoperation determinator 104 are described in detail such as in JapaneseLaid-Open Patent Application No. Hei 10 (1998)-277969 proposed by theapplicant, no further explanation will be made.

Having been configured in the foregoing manner, the gait generationsystem of a legged mobile robot according to the embodiment of thepresent invention can eliminate the aforesaid problems of JapaneseLaid-Open Patent Application No. Hei 10 (1998)-86081 proposed by theapplicant earlier, and can generate a gait of any stride, turning angleand walking period, etc., that satisfies the dynamic equilibriumcondition, freely and on a real-time basis. In addition, it can generatea gait which ensures the displacement and velocity of each part of therobot continuous at a boundary between the next gait.

These will be discussed more specifically. FIG. 19 is a time chartshowing a trajectory of the body-representing point in the Y-direction(i.e., the left and right directions). The gait generation system of alegged mobile robot according to this embodiment can generate a gait insuch a way that the body-representing trajectory (marked by B) graduallyapproaches or converges to the body-representing trajectory of thesteady turning gait (marked by A).

Further, since the system simplify the dynamic model of the leggedmobile so as to enhance the linearity, it can generate a gait bypredicting future robot behavior. Furthermore, since it can generate anyother motion than the walking motion on a real-time basis, it can makethe other motion to be continuous with the walking motion.

It should be noted in the above that the three-material-point modelillustrated in FIG. 5 is not always indispensable. Instead of thethree-material-point model illustrated in FIG. 5, thesingle-material-point model such as disclosed in Japanese PatentPublication No. Hei 4 (1992)-15068 can be used in this embodiment. Indoing so, it will be equivalent to set the value of leg motion to zeroin this embodiment. Although the accuracy of approximation drops, sincethe divergent component induced by the leg motion becomes zero, thevolume of calculation decreases.

FIG. 20 is a subroutine flow chart, similar to FIG. 15, but partiallyshowing the calculation of the steady turning gait's initial divergentcomponent in a gait generation system of a legged mobile robot accordingto a second embodiment of the present invention.

It is stated in the first embodiment, that, instead of thethree-material-point model, a single-material-point model can be used.In the second embodiment, based on the supposition that the performanceof the on-board CPU (first arithmetic unit 60) is markedly high, insteadof the three-material-point model, there is used the model (illustratedin FIG. 23) in which every link is set with mass. In other words, anon-linear model is used in the second embodiment to conduct gaitgeneration.

Explaining the operation of the system according to the secondembodiment, after conducting the same procedures as those shown from S10to S28, via S26, of the flow chart of FIG. 12, the program proceeds to asubroutine flow chart of FIG. 20 to determine the initial divergentcomponent of the steady turning gait.

In the flow chart of FIG. 20, the program begins in S400 in which theinitial body position and velocity candidates (X0, V0) are provisionallydetermined. The body position and velocity indicate the position andvelocity of the body-representing point. For ease of explanation, onlythe determination in the X-direction is discussed. Actually, however,the position and velocity should be searched in both the X andY-directions simultaneously or separately. If they should be searched inthe X and Y-directions simultaneously, the space of search will be aquartic-dimension comprising an X-position, a Y-position, an X-velocityand a Y-velocity.

The program then proceeds, via S402, to S404 in which a gait from thetime 0 to the terminal is generated based on the steady turning gaitparameters regarding (X0, V0) as the initial states of the body, usingthe dynamic model (the non-linear model with every link set with amaterial point as illustrated in FIG. 23). Specifically, by obtainingthe desired ZMP, the desired foot position and posture and the desiredbody posture, by assuming the body's position and velocity as (X0, V0),and by using the dynamic model, the body trajectory to satisfy thedesired ZMP is generated. Similarly to the first embodiment, the gaitgeneration is made only in the gait generator 100 and the generated gaitis not outputted therefrom.

The program then proceeds to S406 in which the terminal body positionand velocity of the generated gait are converted into values viewed fromthe supporting leg coordinate system of the next walking step (the samecoordinate system as the X″′, Y″′-coordinate system illustrated in FIG.14), and determine or express the values as (Xe, Ve).

The program then proceeds to S408 in which errors (errx, erry) between(X0, V0) and (Xe, Ve) are calculated as illustrated. Since (X0, V0) and(Xe, Ve) must be equal to each other in the steady turning gait, asearch should be made to decrease the difference therebetween becomeszero.

The program then proceeds to S410 in which it is determined whether thedetermined errors are within individual permissible ranges. Thepermissible ranges indicates limits of deviation of the position andvelocity at the boundary conditions. Instead of the permissible ranges,the configuration may be altered to determine whether an initialdivergent component (X0+V0/ω0) and an initial convergent component(X0−V0/ω0) are within individual permissible ranges.

When the result in S410 is negative, the program proceeds to S412 inwhich a plurality of initial value candidates (X0+ΔX0, V0), (X0, V0+ΔV0)are determined around (X0, V0) and assuming the candidates as theinitial body states, the gait is generated based on the gait parametersof the steady turning gait, and obtain (Xe+ΔXe1, Ve+ΔVe1), (Xe+ΔXe2,Ve+ΔVe2) that are values obtained by converting the generated gait'sterminal body position and velocity into values viewed from thesupporting leg coordinate system in the next walking step.

The program then proceeds to S414 in which next initial value candidates(X0, V0) are determined based on (X0, V0), the terminal body positionand velocity relative to the initial value candidates thereabout and theaforesaid errors.

These procedures are repeated insofar as the result in S410 is negative.On the other hand, when the result is affirmative, the program exits therepetitive loop (S402) and proceeds to S416 in which the steady turninggait's initial divergent component q[0] is determined using the equationillustrated there. The program then proceeds to S418 in which the sameprocedure as that illustrated in S106 of FIG. 15 in the first embodimentis conducted.

Although the linear three-material-point model as used in the firstembodiment is not used here, since the concept of the divergentcomponent and the convergent component can similarly be applied to aperturbation amount in behavior of the non-linear model as disclosed inFIG. 23, with sufficient accuracy of approximation, it is possible todefine the divergent component using the same equations as those used inthe first embodiment.

The program then proceeds to a step, that is similar to S30 in FIG. 12,in which the gait parameters of the current gait are corrected.

FIG. 21 a flow chart showing the subroutine for it.

Explaining it, the program proceeds, via S500, to S502 in which the bodyposition and velocity (Xe, Ve) at the terminal of the current time gaitare determined based on the provisional desired ZMP pattern and theother current time gait parameters by calculating the current time gaitup to the terminal, and the terminal divergent component q[0] iscalculated using the equation illustrated there.

The program then proceeds to S504 in which the terminal divergentcomponent error errq is determined using the equation illustrated there,to S506 in which it is determined whether the error is within apermissible range. When the result is negative, the program proceeds toS508 in which the body position and velocity (Xe, Ve) at the currentgait terminal are determined by calculating the current time gait up tothe terminal based on the desired ZMP obtained by correcting theprovisional desired ZMP pattern according to the relationshipillustrated in FIG. 16 regarding a as Δa, and a terminal divergentcomponent q1[k] is determined using the equation illustrated there. InS508, Δa is a constant of an appropriately set fine value. The value Δamay be set such that it decrease as the error errq decreases withrepetitive calculation. Even it is set to a fixed constant, the errorwill be fallen within the permissible range by the repetitivecalculation.

The program then proceeds to S510 in which a parameter sensitivity r isdetermined using the equation illustrated there, to S512 in which acorrection amount in the manner illustrated there is added to theprovisional desired ZMP pattern to correct the same.

These procedures are repeated insofar as the result in S506 is negative.When the result is affirmative, on the other hand, the program exits therepetitive loop (S500) and proceeds to S514 in which the provisionaldesired ZMP finally obtained is determined as the desired ZMP.

Explaining the above, when the gait is generated in accordance with thecurrent time gait parameters using the dynamic model and the gait isrepetitively generated continuously in accordance with the steadyturning gait parameters, in order to make the generated gait to convergeto the steady turning gait, the terminal divergent component of thecurrent gait must completely or almost completely be equal to q″ that isa value obtained by viewing the steady turning gait's initial divergentcomponent q[0] from the current time gait's supporting leg coordinatesystem.

In view of the above, also in the second embodiment, the desired ZMPpattern in the gait parameters of the current time gait is corrected tosatisfy this condition.

It should be noted that, also in the second embodiment, the current timegait parameters may be corrected such that body position and velocityare equal to each other at the steady gait boundary. However, comparingwith the case that only the boundary condition relating to the divergentcomponent should be satisfied, the conditions will be stricter, theparameters to be corrected should be increased by two times and thesearch space will be increased.

It should also be noted that, if the body position and velocity shouldbe made equal to each other by correcting the desired ZMP, waveform ofZMP correction amount will not be a simple trapezoidal such as shown inFIG. 16. Rather, it will be a complicated form of two stage trapezoid,for example, and the correction amount will tend to increase.

Explaining this again referring to FIG. 19, as mentioned above, thetrajectory marked by A indicates the body-representing point trajectoryin which the current time gait is generated such that body-representingpoint's position and velocity are equal to each other at the boundarywith the steady turning gait and then the steady turning gait isgenerated. The trajectory marked by B indicates the body-representingpoint trajectory in which the current time gait is generated such thatits terminal divergent becomes equal to q″ and a continuous gait isrepetitively generated using the steady turning gait parameters.

As illustrated, the trajectory B deviates from the trajectory at theboundary of the current time gait and the first steady turning gait,but, gradually approaches (converges to) the trajectory A in due courseand becomes almost equal to the trajectory A at the next steady turninggait. Thus, even the method of gait generation in which only thedivergent component is made equal to each other, can prevent gaitdivergence, similar to the method of gait generation in which even theposition and velocity are made equal to each other.

A trajectory marked by C indicates a trajectory in which the gaitgeneration is conducted without paying any attention thereto. Such atrajectory will deviate from the trajectory A with respect to time. Themethod of gait generation to make even the position and velocity equalto each other is, in other words, that to make not only the divergentcomponent but also the convergent component are made equal to eachother. Therefore, this method of gait generation in which even theposition and velocity are made equal to each other is a specific exampleof the gait generation method in which only the divergent component ismade equal to each other.

Other parameters than the desired ZMP may be corrected (this is the sameas the first embodiment). For ease of explanation, only a linear searchin the X-direction is described. Actually, the number of dimensions areincreased as in the case of searching the initial value of the bodyposition and velocity of the steady turning gait.

In the second embodiment, although a pseudo Newton method (or the methodfor determining a Jacobian (i.e., sensitivity matrix) in (X0, V0) todetermine the next candidate) is used, other search method such as thesimplex method can instead be used. Further, it is alternativelypossible to conduct calculations for search for the parameters inadvance to prepare them as mapped data.

It should further be noted that the method of gait generation in thesecond embodiment using the non-linear model in a searching manner canbe utilized to a linear model such as the three-material-point model (orthe single-material-point model) used in the first embodiment to obtainthe gait in an analytic manner. However, since the gait can bedetermined analytically, there is little advantage to use such asearching method, that is poor in efficiency. In conclusion, any dynamicmodel can be used, if it exhibits a sufficient accuracy ofapproximation.

In the first embodiment or in the second embodiment, if the gait iscontinually generated in line with the supposed steady turning gait, theZMP correction amount is zero, the determined desired ZMP generated asthe current time gait is equal to the ZMP (provisional desired ZMP) ofthe supposed steady turning gait. Since the ZMP of the steady turninggait is set to have high margin of stability, the current time gait hashigh margin of stability insofar as the gait generation is continued inline with the supposed turning gait.

On the other hand, if it is attempted to generate a gait that isdifferent greatly from the steady turning gait supposed one walking stepearlier, since the absolute value of the ZMP correction amount becomeslarge, the desired ZMP trajectory determined as the current time gaitdeviates markedly from an ideal trajectory, the margin of stabilitybecomes low. For example, if it is attempted to turn the robot to theright, the gait should be generated to shift the center of gravity tothe right. If a demand is made to cause the robot to turn to the leftabruptly at the next walking step, the desired ZMP trajectory must beshifted to the right large so as to shift the center of gravity fromright to left. This lowers the margin of stability and the robot isliable to turn over to the right.

For that reason, the steady turning gait to be supposed shouldpreferably set to be close to a gait that would be generated. To causethe robot to walk by the steady turning gait is a limited case andusually, a gait that deviates from the steady turning gait large will begenerated. In the method of steady turning gait generation mentionedabove, it is set to be close to a gait to be generated future.

Methods of steady turning gait generation other than the above will thenbe explained in 1) to 4). Except for 4), a deviation between the steadyturning gait and a gait generated future is liable to increase, butcalculation is made easier.

1) The next but one time's supporting leg coordinate system and the nextbut one time's walking period may be determined by prediction orextrapolation based on the current time supporting leg coordinatesystem, the current time's walking period and a waling history up tothat time, based on the supposition that the walking velocity or turningvelocity of the gait to be generated does not change abruptly.

2) The steady turning gait may not necessarily be a straight walkinggait. In that case, however, as the turning velocity increases, the ZMPcorrection amount increases and hence, the margin of stability islowered.

3) The steady turning gait may be a standstill gait or a gait in whichthe robot is kept standing but its feet are moved up and down in turn.As the walking speed increases, the ZMP correction amount increases andthe margin of stability is lowered. The standstill gait indicates astill gait without movement.

4) A transitional gait may be added or inserted between the current timegait and the steady turning gait. Although calculation for behaviorprediction will be complicated, since the constraint condition (boundarycondition) in determining the steady turning gait becomes loose andsince it becomes possible to set steady turning gait more close to adesired one, it can further enhance the margin of stability.

It is possible to combine 3) and 4). A gait generation system of alegged mobile robot according to a third embodiment of the present ismade with focus on this.

FIG. 22 is a view, similar to FIG. 13, but showing partially theoperation, more specifically, the setting of other steady turning gait,of the system according to the third embodiment.

Specifically, as illustrated in FIG. 22, the embodiment is configured insuch a manner that the steady turning gait includes the standstill gait,and that the transitional gait (transition gait and includes any gaitother than the steady turning gait) is inserted between the current timegait and the standstill gait (steady turning gait).

Thus, by setting three gaits comprising the current time gait, thetransitional gait and the standstill gait, it becomes possible toeffectively prevent the posture divergence. Further, since the gait isgenerated in such a way that the robot can shift to the standstill stateat any time, it can realize a stopping motion with high margin ofstability even when a sudden stop demand is made.

More specifically, deeming the standstill gait as a kind of the steadyturning gaits, the aforesaid algorithm of steady turning gait's initialdivergent component should be used. However, since the body's materialpoint velocity at stop is 0, the divergent component is always equal tothe inverted pendulum's material point position. Accordingly, thedivergent component can be easily obtained without using the algorithm.

Having been configured in the foregoing manner, the third embodiment cangenerate a gait having high margin of stability freely and on areal-time basis, similarly to the first embodiment and the secondembodiment.

As stated in the above, the first to third embodiments are configured tohave a system (gait generator 100) for generating a gait of a leggedmobile robot 1 having at least a body 24 and a plurality of, moreprecisely two legs (leg links) 2 each connected to the body, comprising:a dynamic model (illustrated in FIGS. 5 and 6) that expressesrelationship between motion of the leg and the body, and a floorreaction force (more specifically, the ZMP); current time gait parameterprovisionally-determining means (S24) for provisionally determiningparameters of a current time gait including at least parametersdetermining a trajectory of the leg (desired foot position and posture)and a trajectory of the floor reaction force (desired total floorreaction force central point trajectory (desired ZMP trajectory)), inresponse to at least a demand (next time gait's supporting legcoordinate system, next but one time gait's supporting leg coordinatesystem, current time gait period, next time gait period, etc., S22);periodic gait parameter supposing means (S26) for supposing (ordetermining) the parameters of a periodic gait (steady turning gait)succeeding to the current time gait in response to at least the demand;current time gait parameter correcting means (S30, S200-S208) forcorrecting at least the provisionally determined parameters of thecurrent time gait such that the trajectory of the body (desired bodyposition and posture trajectory) determined based on the dynamic modeland the parameters of the current time gait and the periodic gaitsucceeding thereto substantially converges or becomes equal to atrajectory of the body of the periodic gait determined from theparameters of the periodic gait; and current time gait instantaneousvalue determining means (S20, S300-S314) for determining instantaneousvalues of the current time gait based on at least the correctedparameters of the current time gait.

Further, they are configured to have a system (gait generator 100) forgenerating a gait of a legged mobile robot 1 having at least a body 24and a plurality of, more precisely, two legs (leg links) 2 eachconnected to the body, comprising: a dynamic model (illustrated in FIGS.5 and 6) that expresses relationship between motion of the leg and thebody, and a floor reaction force (more specifically, the ZMP); currenttime gait parameter provisionally-determining means (S24) forprovisionally determining parameters of a current time gait including atleast parameters determining a trajectory of the leg (desired footposition and posture trajectory) and a trajectory of the floor reactionforce (desired total floor reaction force central point trajectory(desired ZMP trajectory)), in response to at least a demand (S22);periodic gait parameter supposing means (S26) for supposing (ordetermining) the parameters of a periodic gait (steady turning gait)succeeding to the current time gait in response to at least the demand;periodic gait boundary divergent component determining means (S28,S100-S106) for determining a periodic gait boundary divergent component(initial divergent component of the steady turning gait) that is a valueindicating a divergent component at gait boundary when behavior of thebody of the periodic gait is approximated by the dynamic model, based onthe parameters of the periodic gait; current time gait parametercorrecting means (S30, S200-S208) for correcting the parameters of thecurrent gait such that the divergent component becomes equal to orbecomes substantially equal to each other at terminal of the currentgait (terminal divergent component) generated with use of the dynamicmodel; and current time gait instantaneous value determining means (S20,S300-S314) for determining instantaneous values of the current time gaitbased on at least the corrected parameters of the current time gait.

Further, it is configured that a transitional gait is inserted betweenthe current time gait and the periodic gait succeeding thereto.

Further, it is configured that the transitional gait includes astandstill gait.

Further, they are configured to have a system (gait generator 100) forgenerating a gait of a legged mobile robot 1 having at least a body 24and a plurality of, more precisely, two legs (leg links) 2 eachconnected to the body, comprising: leg reaction force calculating means(leg ZMP calculator 200, S20, S306) for calculating a leg reactionforce, more specifically, a leg ZMP (ZMPfeet) that is a resultant force(total inertial force) of inertial force and gravity induced by a motionof the leg, without depending on behavior of the body; inverted pendulummodel supporting point position calculating means (S20, S308) forcalculating a position of a supporting point of an inverted pendulum(ZMPpend) that describes dynamic behavior of the body, from at least thecalculated leg reaction force and a desired floor reaction force (morespecifically, a desired ZMP); inverted pendulum displacement calculatingmeans (S20, S310) for calculating displacement of the inverted pendulum,more precisely, the inverted pendulum's material point position(inverted pendulum's horizontal position xb) based on at least thecalculated position of the supporting point of the inverted pendulum;body position calculating means (body position determinator 202, S20,S312, S314) for calculating a position of the body, more precisely, abody's horizontal position based on at least the calculated displacementof the inverted pendulum; and gait generating means (S20, S300-S314,gait generator 100) for generating a gait based on at least thecalculated position of the body.

They are configured to have a system (gait generator 100) for generatinga gait of a legged mobile robot 1 having at least a body 24 and aplurality of, more precisely, two legs (leg links) 2 each connected tothe body, comprising: leg ZMP calculating means (leg ZMP calculator 200,S20, S306) for calculating a leg ZMP (ZMPpend) that is corresponding toa ZMP of the leg that is a pseudo value of a resultant force of inertialforce and gravity induced by a motion of the leg, without depending onbehavior of the body; inverted pendulum model supporting point positioncalculating means (S20, S308) for calculating a position of a supportingpoint of an inverted pendulum (ZMPpend) that describes dynamic behaviorof the body, from at least the calculated ZMP and a desired ZMP;inverted pendulum displacement calculating means (S20, S310) forcalculating displacement of the inverted pendulum, more specifically,the inverted pendulum's material point position (inverted pendulum'shorizontal position xb) based on at least the calculated position of thesupporting point of the inverted pendulum; body position calculatingmeans (S20, S312, S314, body position determinator 202) for calculatinga position of the body based on at least the calculated displacement ofthe inverted pendulum; and gait generating means (S20, S300-S314, gaitgenerator 100) for generating a gait based on at least the calculatedposition of the body.

Further, it is configured that the inverting pendulum model supportingpoint calculating means calculates the supporting point of the invertedpendulum (inverted pendulum's horizontal position xb) by subtracting aproduct obtained by multiplying the leg ZMP by a second coefficientmfeet/mtotal from a product obtained by multiplying the desired ZMP by afirst coefficient mtotal/mb.

Further, they are configured to have a system (gait generator 100) forgenerating a gait of a legged mobile robot 1 having at least a body 24and a plurality of, more precisely, two legs (leg links) 2 eachconnected to the body, comprising: a dynamic model having; a legreaction force calculating means (leg ZMP calculator 200, S20, S306) forcalculating a leg reaction force (leg ZMP (ZMPfeet)) that is a resultantforce of inertial force and gravity induced by a motion of the leg,without depending on behavior of the body; inverted pendulum modelsupporting point position calculating means (S20, S308) for calculatinga position of a supporting point of an inverted pendulum (invertedpendulum's ZMP (ZMPpend)) that describes dynamic behavior of the body,from at least the calculated leg reaction force and a desired floorreaction force (desired ZMP); inverted pendulum displacement calculatingmeans (S20, S310) for calculating displacement of the inverted pendulumbased on at least the calculated position of the supporting point of theinverted pendulum, more precisely position (inverted pendulum'shorizontal position); and body position calculating means (body positiondeterminator 202, S20, S312, S314) for calculating a position of thebody (body's horizontal position) based on at least the calculateddisplacement of the inverted pendulum; current time gait parameterprovisionally-determining means (S24) for provisionally determiningparameters of a current time gait including at least parametersdetermining a trajectory of the leg (desired foot position and posturetrajectory) and a trajectory of the floor reaction force (desired totalfloor reaction force central point trajectory (desired ZMP trajectory)),in response to at least a demand (S22); periodic gait parametersupposing means (S26) for supposing the parameters of a periodic gait(steady turning gait) succeeding to the current time gait in response toat least the demand; periodic gait boundary divergent componentdetermining means (S28, S100-S106) for determining a periodic gaitboundary divergent component that is a value indicating a divergentcomponent (steady turning gait's initial divergent component) at gaitboundary when behavior of the body of the periodic gait is approximatedby the dynamic model, based on the parameters of the periodic gait;current time gait parameter correcting means (S30, S200-S208) forcorrecting the parameters of the current gait such that the divergentcomponent becomes equal to or becomes substantially equal to each otherat terminal of the current gait (current time gait's terminal divergentcomponent) generated with use of the dynamic model; and current timegait instantaneous value determining means (S20, S300-S314) fordetermining instantaneous values of the current time gait based on atleast the corrected parameters of the current time gait.

Further, it is configured that the floor reaction force includes atleast a ZMP and the inverted pendulum (illustrated in FIGS. 5 and 6) isa linear model.

Next, the calculation of the leg ZMP (ZMPfeet) will additionally becommented.

It is preferable for the leg ZMP (ZMPfeet) determining function tosatisfy the following conditions (that in the first embodiment cansatisfy all of the conditions):

Condition a) It should be determined based on all or a part of the gaitparameters that determine the foot trajectory.

Condition b) It should not be influenced by the motion of thebody-representing point.

Condition c) The accuracy of approximation of a simplified model shouldbe sufficiently high.

Condition d) It should be continuous as much as possible (so as to makethe body acceleration continuous.)

Among of them, Conditions a) and b) are those for facilitating thepredictive calculation. In the embodiments, the leg ZMP is obtained fromEqs. 1 and 2. It may instead be obtained from Eq. 1 and the followingequations (Eqs. 36 and 37)leg's total inertial force moment about pointP=mfeet*(ZMPfeet−xp)*(G−C*afeetz)  Eq. 36

In the equation, C is a constant. From Eq. 37, feet's center ofgravity's acceleration vector afeet is obtained. “afeetz” in Eq. 36indicates the feet's center of gravity's vertical-directionalacceleration vector that is corresponding to the vector afeet with its Xand Y components are made zero.afeet=(msup*d2(xsup)/dt2+mswg*d2(xswg)/dt2)/(msup+mswg)  Eq. 37

Since the degree of adjustment of Eq. 36 is higher than that of Eq. 2,it can enhance the accuracy of approximation. In Eq. 1 for calculatingthe leg's total inertial force moment about the point P, the termrelating to the leg acceleration can be multiplied by the constant asdisclosed. Although the equation is changed to be incorrect in the senseof dynamics, insofar as the accuracy of approximation of the simplifiedmodel is enhanced, it is possible.

Then, the setting of the point of action P will be commented.

The point of action P may be set as follows:

1) to set the point of action P at the origin of supporting legcoordinate system of the current time gait or a predetermined pointthereabout.

2) to set the point of action P such that it moves continuously duringthe two-leg supporting period from the last time (just before thecurrent time) gait's supporting leg coordinates system' origin or apredetermined point thereabout to the current time gait's supporting legcoordinate system's origin or a predetermined point thereabout.

3) to set the point of action P such that it becomes equal to theprovisional desired ZMP trajectory.

Their characteristic features will additionally be commented.

As regards 1), since the point of action P becomes discontinuousrelative to the leg position (i.e., becomes discontinuous when viewingfrom the absolute coordinate system fixed on the floor), ZMPfeet doesdisadvantageously become discontinuous relative to the leg position(i.e., becomes discontinuous when viewing from the absolute coordinatesystem). However, if the coordinate system is switched during thetwo-leg period where the feet acceleration is not so large, themagnitude of discontinuity will yield little problem in walking.

As regards 2), its accuracy of approximation is better than 1). Further,since the point of action P becomes continuous relative to the legposition, ZMPfeet does accordingly become continuous relative to the legposition.

As regards 3), its accuracy of approximation is more improved than 2).Further, like 2), ZMPfeet is continuous relative to the leg position.

Then, the calculation of leg's total inertial force moment willadditionally be commented.

The foot material point trajectory is a trajectory determined from thefoot motion parameters. The trajectory of the foot position and postureto be used in determining the foot material point trajectory need not beequal to the foot position and posture in the desired gait outputtedfrom the gait generator 100. For example, if the foot in the desiredgait should rotate, the foot position and posture trajectory to be usedin determining the foot material point trajectory may be a trajectory inwhich the foot is kept horizontal. Unless the accuracy is degradedgreatly, the amount of foot lifting or some similar parameters may bealtered in the trajectory.

The leg material point may be set as follows:

1) to set at a predetermined point in the foot;

2) to set at a point shifted vertically from the aforesaid predeterminedpoint by a prescribed distance;

3) to set at a plurality of points in the foot. The foot may set withinertia.

Any of the above can satisfy the aforesaid Condition b).

Additionally commenting on the setting of the material point offset ofthe body and leg, if the material point offset values of the body andleg may be set to fixed values, there will yield little problem.Alternatively, they may be corrected in response to the gait parametersin order to decrease the modeling error of the center of gravity aslittle as possible. Although the horizontal position of the invertedpendulum is made corresponding to the horizontal position of thebody-representing point, it may alternatively be made to becorresponding to the center of gravity of the robot, as a whole, or tothe center of gravity of the robot excluding legs or a leg.

Although the height of the inverted pendulum may be changed in responseto the gait parameters, it is preferable to set the height to a fixedvalue during a short period of time (such as during one waking step) inorder to facilitate future behavior prediction.

Additionally commenting on the calculation of the divergent componentinduced by the leg motion, the divergent component induced by the legmotion may be determined directly from the gait parameters in anapproximation manner, without generating the leg motion at every controlcycle. For example, by approximating that the leg ZMP is at an averagevalue between the feet's center of gravity at the initial of the gaitand that at the terminal of the gait during one step walking, a productobtained by multiplying the average value with H(1, T) will be a valuethat approximates a value obtained by converting the divergent componentinduced by the leg motion by into impulse at time 0.

The terminal divergent component induced by the leg motion is expressedby a function that inputs the gait parameters (in particular, the legmotion parameter and time parameter). Accordingly, if mapped data thatshows the relationship between the gait parameters and the terminaldivergent component induced by the leg motion, the volume of calculationwill be decreased, although additional capacity of memory is needed.Either method can be utilized.

It will be possible to combine these aforesaid alternatives together.For example, the method of leg ZMP calculation to calculate the ZMPcorrection amount (in predicting future behavior) and the method of legZMP calculation to calculate the instantaneous value in the currentcontrol cycle need not be strictly equal to each other. Since theinfluence of the initial divergent component is taken into account whencalculating the ZMP correction amount, if the divergent componentdeviates by a small difference (occurring between them), a correctionwill be made to suppress the divergence when conducting gait generationin the next walking step.

It should be noted that, although the gait is corrected or changed whenthe time t is zero in S10 in the flow chart of FIG. 12 in the firstembodiment, the gait may be corrected or changed at any time other thanthat. If doing so, it suffices if the current time is deemed as theinitial time of the current time gait. In other words, it suffices if aperiod of time of the current time gait is ranged from the current timeto the current time gait's terminal.

It should further be noted that the block diagram illustrated in FIG. 6may be altered insofar as equivalent operation is possible.

In the foregoing embodiments, although the present invention has beendescribed with reference to a biped robot, the present invention canalso be applied to any other legged mobile robots having legs of threeor more.

INDUSTRIAL FIELD IN WHICH THE INVENTION IS APPLICABLE

According to the present invention, there is provided a gait generationsystem of a legged mobile robot that has the dynamic model expressingthe relationship between the motion of the body and leg and the floorreaction force, and provisionally determines the current time gaitparameters including at least parameters that determine leg trajectoryand the like in response to a demand, corrects the current time gaitparameters such that the body trajectory (determined based on thedynamic model and the parameters of the current time gait and a periodicgait succeeding thereto) substantially converges or becomes equal to abody trajectory determined from the parameters of the periodic gait, anddetermines instantaneous values of the current time gait based on thecorrected current time gait parameter. With this, the system cangenerate, freely and on a real-time basis, a gait of any stride, turningangle and walking period, including the floor reaction force acting onthe legged mobile robot, that satisfies the dynamic equilibriumcondition.

Further, the system can generates a gait in such a manner that thedisplacement and velocity of each robot part are continues at theboundary of the generated gait and that succeeding thereto, can generatea gait that is high in the margin of stability, can predict futurebehavior of the robot to generate a gait such that no disadvantages suchas posture divergence occurs. Furthermore, the system can ensurereal-time gait generation with high speed calculation.

1. A system for generating a gait of a legged mobile robot having atleast a body and a plurality of legs each connected to the body,comprising: a. a dynamic model that expresses relationship betweenmotion of the leg and the body, and a floor reaction force; b. currenttime gait parameter provisionally-determining means for provisionallydetermining parameters of a current time gait including at leastparameters determining a trajectory of the leg and a trajectory of thefloor reaction force, in response to at least a demand; c. periodic gaitparameter supposing means for supposing the parameters of a periodicgait succeeding to the current time gait in response to at least thedemand; d. current time gait parameter correcting means for correctingat least the provisionally determined parameters of the current timegait such that the trajectory of the body determined based on thedynamic model and the parameters of the current time gait and theperiodic gait succeeding thereto substantially converges or become equalto a trajectory of the body of the periodic gait determined from theparameters of the periodic gait; and e. current time gait instantaneousvalue determining means for determining instantaneous values of thecurrent time gait based on at least the corrected parameters of thecurrent time gait.
 2. A system according to claim 1, wherein atransitional gait is inserted between the current time gait and theperiodic gait succeeding thereto.
 3. A system according to claim 2,wherein the transitional gait includes a standstill gait.
 4. A systemaccording to claim 1, wherein the floor reaction force includes at leasta ZMP.
 5. A system for generating a gait of a legged mobile robot havingat least a body and a plurality of legs each connected to the body,comprising: a. a dynamic model that expresses relationship betweenmotion of the leg and the body, and a floor reaction force; b. currenttime gait parameter provisionally-determining means for provisionallydetermining parameters of a current time gait including at leastparameters determining a trajectory of the leg and a trajectory of thefloor reaction force, in response to at least a demand; c. periodic gaitparameter supposing means for supposing the parameters of a periodicgait succeeding to the current time gait in response to at least thedemand; d. periodic gait boundary divergent component determining meansfor determining a periodic gait boundary divergent component that is avalue indicating a divergent component at gait boundary when behavior ofthe body of the periodic gait is approximated by the dynamic model,based on the parameters of the periodic gait; e. current time gaitparameter correcting means for correcting the parameters of the currentgait such that the divergent component becomes equal to or becomessubstantially equal to each other at terminal of the current gaitgenerated with use of the dynamic model; and f. current time gaitinstantaneous value determining means for determining instantaneousvalues of the current time gait based on at least the correctedparameters of the current time gait.
 6. A system according to claim 5,wherein a transitional gait is inserted between the current time gaitand the periodic gait succeeding thereto.
 7. A system according to claim5, wherein the floor reaction force includes at least a ZMP.
 8. A systemfor generating a gait of a legged mobile robot having at least a bodyand a plurality of legs each connected to the body, comprising: a. legreaction force calculating means for calculating a leg reaction forcethat is a resultant force of inertial force and gravity induced by amotion of the leg, without depending on behavior of the body; b.inverted pendulum model supporting point position calculating means forcalculating a position of a supporting point of an inverted pendulumthat describes dynamic behavior of the body, from at least thecalculated leg reaction force and a desired floor reaction force; c.inverted pendulum displacement calculating means for calculatingdisplacement of the inverted pendulum based on at least the calculatedposition of the supporting point of the inverted pendulum; d. bodyposition calculating means for calculating a position of the body basedon at least the calculated displacement of the inverted pendulum; and e.gait generating means for generating a gait based on at least thecalculated position of the body.
 9. A system according to claim 8,wherein the inverted pendulum is a linear model.
 10. A system accordingto claim 8, wherein the floor reaction force includes at least a ZMP.11. A system for generating a gait of a legged mobile robot having atleast a body and a plurality of legs each connected to the body,comprising: a. leg ZMP calculating means for calculating a leg ZMP thatis corresponding to a ZMP of the leg that is a pseudo value of aresultant force of inertial force and gravity induced by a motion of theleg, without depending on behavior of the body; b. inverted pendulummodel supporting point position calculating means for calculating aposition of a supporting point of an inverted pendulum that describesdynamic behavior of the body, from at least the calculated ZMP and adesired ZMP; c. inverted pendulum displacement calculating means forcalculating displacement of the inverted pendulum based on at least thecalculated position of the supporting point of the inverted pendulum; d.body position calculating means for calculating a position of the bodybased on at least the calculated displacement of the inverted pendulum;and e. gait generating means for generating a gait based on at least thecalculated position of the body.
 12. A system according to claim 11,wherein the inverting pendulum model supporting point calculating meanscalculates the supporting point of the inverted pendulum by subtractinga product obtained by multiplying the leg ZMP by a second coefficientfrom a product obtained by multiplying the desired ZMP by a firstcoefficient.
 13. A system according to claim 11, wherein the invertedpendulum is a linear model.
 14. A system for generating a gait of alegged mobile robot having at least a body and a plurality of legs eachconnected to the body, comprising: a. a dynamic model having; a legreaction force calculating means for calculating a leg reaction forcethat is a resultant force of inertial force and gravity induced by amotion of the leg, without depending on behavior of the body; invertedpendulum model supporting point position calculating means forcalculating a position of a supporting point of an inverted pendulumthat describes dynamic behavior of the body, from at least thecalculated leg reaction force and a desired floor reaction force;inverted pendulum displacement calculating means for calculatingdisplacement of the inverted pendulum based on at least the calculatedposition of the supporting point of the inverted pendulum; and bodyposition calculating means for calculating a position of the body basedon at least the calculated displacement of the inverted pendulum; b.current time gait parameter provisionally-determining means forprovisionally determining parameters of a current time gait including atleast parameters determining a trajectory of the leg and a trajectory ofthe floor reaction force, in response to at least a demand; c. periodicgait parameter supposing means for supposing the parameters of aperiodic gait succeeding to the current time gait in response to atleast the demand; d. periodic gait boundary divergent componentdetermining means for determining a periodic gait boundary divergentcomponent that is a value indicating a divergent component at gaitboundary when behavior of the body of the periodic gait is approximatedby the dynamic model, based on the parameters of the periodic gait; e.current time gait parameter correcting means for correcting theparameters of the current gait such that the divergent component becomesequal to or becomes substantially equal to each other at terminal of thecurrent gait generated with use of the dynamic model; and f. currenttime gait instantaneous value determining means for determininginstantaneous values of the current time gait based on at least thecorrected parameters of the current time gait.
 15. A system according toclaim 14, wherein the floor reaction force includes at least a ZMP. 16.A system according to claim 14, wherein the inverted pendulum is alinear model.